解決$.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