`
Kenny.Lee
  • 浏览: 512169 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于AJAX中urlencode乱码

    博客分类:
  • AJAX
阅读更多
乱码的情况可谓层出不穷,所以能做的就是总结经验。昨天又发现一个乱码问题,觉得比较奇怪,因为所有参数值都经过encodeURIComponent处理,并且之前测试是正常的(多浏览器测试过),今天无缘无故又冒出来了。

情况描述:
环境:用AJAX使用POST提交请求,参数经过转码处理。
现象:Firefox下,一切正常,而IE下出现中文乱码的问题。

解决办法:
分别查看Firefox和IE的request的header发现有一些细微的差别。原以为是accept-charset的问题,结果添加后依然存在。最后发现是在Firefox中定义Content-Type时会默认把页面编码的charset添加上,而IE没有帮我们添加。添加测试后,问题即解决。

所以在使用AJAX提交请求的时候,定义Content-Type的同时希望都把charset添加上,想起以前看过一些别人的代码会这样写的,但一直没这个习惯好像也没问题,现在就遇到问题了。

即form的request例子如下
request.open('POST', url, true);
request.onreadystatechange = callback;
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
request.send(parameters);

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics