首页 > Web开发 > 详细

jquery ajax返回html乱码解决

时间:2014-04-04 00:25:32      阅读:757      评论:0      收藏:0      [点我收藏+]

情景:

  index.html 使用如下代码访问另外一个html片段

1
2
3
4
5
6
7
8
9
10
11
12
13
function rewritedata(id){
    var uu = "/ciweekly/categorydataph/html/ciweeklyph_"+id+".html";
    $.ajax({
    url:uu,
    type:‘POST‘,
    dataType:‘text/html‘ ,
    error:function(){
    },
    success:function(dd){
        $("#ph_dd").html(dd);
    }
    });
}

注意:被访问的html为片段文件 ,里面只有一些数据代码 没有头部没有设置编码

使用ajax在发出请求后,xmlhttp组件在解析返回数据的编码时,是根据 http 响应的头部中是否有页面内容编码声明决定的.

如果返回的 http 头部中包含 charset 的内容编码声明,则按指定的编码读 responseBody,转换后存在 responseText中.
如果返回的 http 头部中没有包含 charset 的内容编码声明,则默认其编码为 utf-8,
所以,如果是gb2312的html页面,在用ajax请求后,读出来肯定是乱的.
原因是因为 html 页面服务端在输出的时候,是不包含 charset 内容编码声明的,所以ajax就会按utf-8
来解码,不乱才怪.

解决办法:在被访问的html片段页面头部放入如下声明:

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

 

jquery ajax返回html乱码解决,布布扣,bubuko.com

jquery ajax返回html乱码解决

原文:http://www.cnblogs.com/lixiuran/p/3643297.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!