JS this作用域以及GET传输值过长的问题解决方法
在开发项目的时候,前端遇到两个比较隐蔽的问题。
问题一.专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对象
解决方法:
解决方法:
问题一.专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 } }); }
相关推荐
lyqdanang 2020-08-16
坚持着执着 2020-06-16
ChinaGuanq 2020-05-01
麋鹿麋鹿迷了路 2020-05-29
ThinkingLink 2020-05-20
88274956 2020-11-03
runner 2020-09-01
梦的天空 2020-08-25
移动开发与培训 2020-08-16
ReunionIsland 2020-08-16
MyNameIsXiaoLai 2020-07-08
星辰的笔记 2020-07-04
csstpeixun 2020-06-28
letheashura 2020-06-26
liaoxuewu 2020-06-26
sunzhihaofuture 2020-06-21
FEvivi 2020-06-16
waterv 2020-06-14
xiaoge00 2020-06-14
firejq 2020-06-14
firstboy0 2020-06-14
e度空间 2020-06-12
zhongweinan 2020-06-10