关于AJAX中urlencode乱码

乱码的情况可谓层出不穷,所以能做的就是总结经验。昨天又发现一个乱码问题,觉得比较奇怪,因为所有参数值都经过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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值