一、問題重現
本地的腳本請求測試環境的接口
$.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等,但這只是一個測試環境,真實環境並沒有出現這個問題。專門講解決跨域問題,那就是另外一個話題了。
