需求是兼容到 IE8。
$.ajax 總是請求失敗,直接跳轉到 error 函數中,報錯:拒絕訪問。
網上的一些解決方法都試過了還是沒有用,比如再請求之前設置 jQuery.support.cors = true,並調用 jquery.xdomainrequest.min.js 。更改 IE 設置,將通過域訪問數據設置為允許。這些方法都試過了,都沒有用。
最后是在 $.ajax 運行之前添加如下代碼成功的 。
jQuery.support.cors = true; jQuery.ajaxSetup({ xhr: function() { if(window.ActiveXObject){ return new window.ActiveXObject("Microsoft.XMLHTTP"); }else{ return new window.XMLHttpRequest(); } } });
以上代碼,如果只設置了 ajaxSetup ,而沒有設置 cors,就會報錯 No Transport 。
所以兩個都要設置,后台還需要設置所有域名都可訪問,'Access-Control-Allow-Origin': '*'