Heim >Web-Frontend >js-Tutorial >JS this作用域以及GET传输值过长的问题解决方法_javascript技巧

JS this作用域以及GET传输值过长的问题解决方法_javascript技巧

WBOY
WBOYOriginal
2016-05-16 17:26:261187Durchsuche

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

问题一.专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
}
});
}
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn