ajax getResponseHeader获取中文响应头

  如果页面响应头中包含中文内容,ajax请求的页面和被请求的页面即使编码统一,不同浏览器下表现的方式还是会不一样,firefox/IE下出现乱码,chrome可以正常调用getResponseHeader获取到中文的响应头内容。

ajax getResponseHeader获取中文响应头

  要解决这个问题,可以将中文进行编码后在设置为响应头内容,这样ajax调动getResponseHeader获取内容后,在客户端解码下就不会出现乱码了,示例代码如下

ajax getResponseHeader获取中文响应头

<%@ Page Language="C#" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["ah"] == "1")
        {
            string s = "中国";
            Response.AddHeader("cn", Microsoft.JScript.GlobalObject.escape(s));
            Response.End();
        }
    }
    </script>
    <script>
        var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("microsoft.xmlhttp");
        xhr.open('get', 'bb.aspx?ah=1&' + new Date().getTime(), false);
        xhr.send(null);
        var cn = xhr.getResponseHeader('cn');
        alert(cn);
    </script>

注意:不要使用Server.UrlEncode进行编码,客户端的解码函数无法解码,具体参考:Asp.net实现javascript escape/encodeURI/encodeURIComponent编码

加支付宝好友偷能量挖...


原创文章,转载请注明出处:ajax getResponseHeader获取中文响应头

评论(0)Web开发网
阅读(1615)喜欢(0)JavaScript/Ajax开发技巧