最近遇到 IE 10 打开一个网页总是有个地方显示不出来,原来以为是 IE 10 自带兼容模式的问题,后来发现,其实不是这样
这是一个下拉菜单的控件,当选择一个选项后,OnChange会发起一个 get 请求,get 请求的结果会呈现在网页的另一部分,页面在谷歌浏览器显示正常,但是在 IE 10 浏览器中,看上去这个 get 请求一直都不成功。
f12 看了一下网络请求,发现 IE 10 上这个请求还是发出去了,但是收到的结果是 http 400 的报错页面,导致无法解析成 json。
既然知道了 IE 有问题谷歌没问题,那我们看看谷歌的请求长什么样子,重新在谷歌浏览器打开网页,f12 对比一下两边的请求,很快我们就看到,两个 get 的 uri 就有差别,这个请求是 js 拼接出来的结果,但是 IE 和谷歌的处理方式有所不同:
谷歌浏览器自动把脚本中的请求做了 uri encoding。
所以我们可以回答标题的问题了:IE 对含 CJK 字符的 url 没有进行任何处理(至少是脚本中)。