自打入了开发这一行以来,调试工具从火狐换成了谷歌。用了三个月的火狐,三年多的谷歌,非常很特别的得心应手,但是由于换了一个公司,公司不属于软件公司,我也只是做公司内部的软件,所以就遇到了IE浏览器,前前后后一个多月摔进坑里四次。下面就讲第一个坑。
好了上面都是废话,下面讲一下我遇到的问题,以及解决问题的方法,给遇到这个问题正在不知所措得你,也给健忘的我。
点击按钮,然后打开页面,代码如下:
$(".bmjf").on("click",function(){
var department_name=this.getAttribute("name");//研发部
var url=$webURI + "/web/home/toDepart.action?departName="+department_name;
window.location.href=url;
});
如果项目运行在火狐或者谷歌浏览器,都是正常的,但是,运行在IE11浏览器,就报400,报错如下图
后来查资料发现,是因为我传参的时候带了中文字符,而ie对中文字符是有限制的,所以不成功,而要解决这个问题就需要转码,把要传的中文参数用encodeURI(jQuery方法,调用的话需要引入jQuery文件)方法给转一下码就ok。
也就是把department_name转一下码,改为encodeURI(department_name)
var department_name=encodeURI(this.getAttribute("name"));//研发部
改完以后IE11运行就正常啦~~~
下面是修改后的代码
$(".bmjf").on("click",function(){
var department_name=this.getAttribute("name");//研发部
var url=$webURI + "/web/home/toDepart.action?departName="+encodeURI(department_name);
window.location.href=url;
});