博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery ajax返回html乱码解决
阅读量:6932 次
发布时间:2019-06-27

本文共 719 字,大约阅读时间需要 2 分钟。

情景:

  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">

 

转载地址:http://tymjl.baihongyu.com/

你可能感兴趣的文章
华为7.0系统手机最完美激活Xposed框架的教程
查看>>
繁忙的IT基础设施可能导致安全灾难
查看>>
Objective-C之Block
查看>>
iOS 图片加载框架-SDWebImage 解读
查看>>
Flash ActionScript3.0 中txt文档根据模板转换成html文档的实现
查看>>
安景业安京业安敬业anjingye
查看>>
java rest的说明
查看>>
Angular在页面加载很慢的时候,会出现双花括号的问题
查看>>
JS判断客户端是否是iOS或者Android手机移动端
查看>>
我的友情链接
查看>>
清除浏览器自动填充用户名、密码框
查看>>
HTML5 meta viewport参数详解
查看>>
C#中==、Equals、ReferenceEquals的区别是什么
查看>>
echo的特殊用法-字符颜色控制
查看>>
linux系统inittab文件丢失故障
查看>>
clean code
查看>>
程序员与HR博弈之:有城府的表达你的兴趣爱好
查看>>
vm虚拟机导入时候找不到ip
查看>>
Apache配置——通过rewrite限制某个目录
查看>>
简单记事本和简单四则运算计算器源代码(*.h *.cpp main.cpp)
查看>>