解决$.ajax()在IE10以下失效的问题


一、问题重现

本地的脚本请求测试环境的接口

$.ajax({
	url: ***,
	type: GET,
	data: data,
	success: function (data) { **** }
});

在chrome、Firefox和IE9以上的都正常发送请求,IE10以下没有发送请求。

 

二、解决思路

$.ajax()中把错误信息显示出来

$.ajax({
	url: ***,
	type: GET,
	data: data,
	success: function (data) { **** }
        error: function (a, b, c) {alert(c);}
});

 

三、原来是 No Transport错误

网上说是涉及到跨站脚本攻击,所以不让提交。

四、解决
在$.ajax()前加上下面这句话(jQuery.support.cors = true;),这是对cors协议的一种实现,CORS是W3C中额度一项新特性,能让jQuery支持跨域请求。

jQuery.support.cors = true;
$.ajax({
	url: ***,
	type: GET,
	data: data,
	success: function (data) { **** }
});

注意:实际开发环境中是不可以加上jQuery.support.cors = true;这句话的。

其实JQuery已经提供了专门的方法支持跨域请求,比如jsonp等,但这只是一个测试环境,真实环境并没有出现这个问题。专门讲解决跨域问题,那就是另外一个话题了。

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM