IE6异步请求缓存导致的乱码问题

本文描述了在IE6浏览器中遇到的一个特殊问题:登录框在第二次弹出时出现中文乱码的情况。问题原因是IE6未重新发送异步请求而直接使用了缓存数据。文中提供了两种解决方案:一是通过添加时间戳强制获取新数据;二是采用Unicode编码处理接口返回的中文内容。
 近日在升级KISSY的过程中,在IE6下遇到一个很奇怪的问题:

页面编码是gbk,ji和css文件是utf-8的,当用户要使用某些功能时页面会弹出迷你登录框提示用户登录,会发送异步请求,获得登录框的模板,编码是和js一致的(utf-8),第一次是ok的,但当刷新页面第二次弹出登录框时,问题来了,从接口返回的中文乱码了。用fiddler查看,发现第二次,IE6没有发异步请求获得数据,而是从缓存中得到的。

解决方案有两种:

1. 给异步请求加上时间戳,确保每次发出请求,从服务器获得新数据。这种方法比较容易实施,也不会影响功能,但因为不缓存请求,为服务器增加了不必要的压力,降低了性能,需要结合应用场景选择。
2. 把异步请求的接口返回的数据的中文用unicode处理,是比较安全实用的方法,无论将来怎么变化,都不会产生编码问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值