在 IE 8 中使用 AJAX 发送 Unicode 字符

发布于 2024-11-18 21:36:31 字数 1907 浏览 0 评论 0原文

我有 IE 7 + 8 和页面,其中

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我正在使用具有阿拉伯字符的 AJAX 发送字符串。

我的问题是到达服务器的字符串有??? IE 7 上的值和 IE8 上的 Gibrish。英文字符就很好。

function getXmlHttpObject()
{
    try
    {  
        // Firefox, Opera 8.0+, Safari  
        xmlHttp=new XMLHttpRequest();  
    }
    catch (e)
    { 
        // Internet Explorer  
        try
        {    
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");   
        }
        catch (e)
        {    
            try
            {      
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");      
            }
            catch (e)
            {      
                alert("Your browser does not support AJAX!");      
                return false;     
            }    
        }  
    }   
    return xmlHttp;
}

然后是 AJAX 本身:

          function updateName()
            {
                //updateLocal();
                xmlHttp = getXmlHttpObject();

                var username = document.getElementById('username').value;
                xmlHttp.onreadystatechange=function(){onResponseUpdateOrderName();};
                var params = "username=" +username;
                xmlHttp.open("POST",myRootLink+"/myServlet/?"+params,true);
                var boundaryString = 'bound';
                var boundary = '--' + boundaryString;
                var requestBody = [
                boundary,
                params,
                boundary,
                ].join('\r\n');
                xmlHttp.setRequestHeader("Content-length", requestBody.length);
                xmlHttp.setRequestHeader("Connection", "close");
                 xmlHttp.setRequestHeader('Content-type', 'text/xml;charset=utf-8');
                xmlHttp.send(requestBody);
            }

我怎样才能发送它来解决这个问题?

I have IE 7 + 8 and page which has

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

I'm sending string using AJAX which has Arabic character.

my problem is that the string which arrives to the server has ???? values on IE 7 and Gibrish on IE8. English chars are just fine.

function getXmlHttpObject()
{
    try
    {  
        // Firefox, Opera 8.0+, Safari  
        xmlHttp=new XMLHttpRequest();  
    }
    catch (e)
    { 
        // Internet Explorer  
        try
        {    
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");   
        }
        catch (e)
        {    
            try
            {      
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");      
            }
            catch (e)
            {      
                alert("Your browser does not support AJAX!");      
                return false;     
            }    
        }  
    }   
    return xmlHttp;
}

and then the AJAX itself:

          function updateName()
            {
                //updateLocal();
                xmlHttp = getXmlHttpObject();

                var username = document.getElementById('username').value;
                xmlHttp.onreadystatechange=function(){onResponseUpdateOrderName();};
                var params = "username=" +username;
                xmlHttp.open("POST",myRootLink+"/myServlet/?"+params,true);
                var boundaryString = 'bound';
                var boundary = '--' + boundaryString;
                var requestBody = [
                boundary,
                params,
                boundary,
                ].join('\r\n');
                xmlHttp.setRequestHeader("Content-length", requestBody.length);
                xmlHttp.setRequestHeader("Connection", "close");
                 xmlHttp.setRequestHeader('Content-type', 'text/xml;charset=utf-8');
                xmlHttp.send(requestBody);
            }

How can I send it solve this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ゃ懵逼小萝莉 2024-11-25 21:36:31

替换

var params = "username=" +username;"

var params = "username=" +username;

Replace

var params = "username=" +username;"

with

var params = "username=" +username;
2024-11-25 21:36:31

试试这个:

          xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');

它对我有用。

try this :

          xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');

It work for me.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文