JS this作用域以及GET传输值过长的问题解决方法
JS this作用域以及GET传输值过长的问题解决方法
发布时间:2016-12-30 来源:查字典编辑
摘要:在开发项目的时候,前端遇到两个比较隐蔽的问题。问题一.专IE7浏览器,IEURL参数过长问题,引发HTTPStatus122报错原因:在IE...

在开发项目的时候,前端遇到两个比较隐蔽的问题。

问题一.专IE7浏览器,IE URL参数过长问题,引发HTTP Status 122报错

原因:在IE6.8下没有什么问题,但在IE7就不兼容get参数过长,google上说“Don't use the GET method in Ajax Apps, if you can void it, because IE7 craps out with more than 2032 characters in a get string”

解决方法:

把原项目采用jsonp get的数据方法改为 常规post数据方法

问题二. this作用域问题

原因:this如果不是在对象内部默认为是 window这个大对象,如下面的this如是放在一个ajax的里面指的是当前域名ajax对象

解决方法:

复制代码 代码如下:

var test={};

test.getflash = 2;

test.test =function(){

alert(this.getflash); //2

$.ajax({

type: "POST",

url: "some.php",

data: "name=John&location=Boston",

success: function(msg){

alert(this.getflash); //等于undefine

}

});

}

解决方法:

复制代码 代码如下:

test.test =function(){

var thisValue = this;

alert(thisValue.getflash); //2

$.ajax({

type: "POST",

url: "some.php",

data: "name=John&location=Boston",

success: function(msg){

alert(thisValue.getflash); //2

}

});

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类