您的位置:首页 > Web前端 > JavaScript

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

2013-08-06 00:00 656 查看
在开发项目的时候,前端遇到两个比较隐蔽的问题。

问题一.专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 
} 
}); 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐