IE浏览器url中出现中文访问404问题解决

使用ie浏览器,当get请求访问url中含有中文时,就会返回404.  为什么firfox和chrome就没有这个问题呢? 对比后你会发现浏览器地址栏中firfox和chrome把中文都转换成了%E....什么的东西,然后copy到ie也能正常访问了.

这个是ie不会自动把不符合标准的字符转换成特殊的utf8造成的.

网上搜了好多所谓的解决方法降低tomcat版本什么的,都太麻烦又不太实用.

今天看ECMA文档,看到了Global 的 encodeURI() 函数就是解决这类问题的. 所以就记录下,别下次忘记了.

测试了下是ok的

var url = '/tw/topic/test.htm?id=123&name=姓名';
console.log(url);
console.log(encodeURI(url));

//11:37:01.247 /tw/topic/test.htm?id=123&name=姓名

//11:37:01.248 /tw/topic/test.htm?id=123&name=%E5%A7%93%E5%90%8D

 

浏览器中Global对象是作为window的一部分实现的,

一种取得Global对象的方法是使用以下代码:var global = function(){ return this; }();

,在没有给函数明确指定this值的情况下(无论是通过将函数添加为对象的方法,还是通过调用call()或apply()),this值等于Global对象。而像这样通过简单地返回this来取得Global对象,在任何执行环境下都是可行的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值