當使用jQuery在IE中進行AJAX請求時,可能會遇到一個相當令人困惑的問題:請求發生了錯誤,而且沒有提供任何有用的信息。
這個問題通常是由瀏覽器的"兼容性視圖"模式引起的。簡而言之,IE將您的頁面視為舊式IE6網站,因此在嘗試跨域請求時,它使用了一種稱為"XDomainRequest"的新技術。但是,當請求失敗時,XDomainRequest并不會給出非常詳細的錯誤信息。
要解決這個問題,最簡單的方法是將代碼部署到一個Web服務器上,而不是使用本地文件。另一個方法是使用jQuery的$.support.cors屬性,這個屬性檢查瀏覽器是否支持CORS(Cross-Origin Resource Sharing)。
if ($.support.cors) { $.ajax({ type: 'POST', url: 'http://example.com/', data: {name: 'John'}, success: function(responseData, textStatus, jqXHR) { console.log(responseData); }, error: function (responseData, textStatus, errorThrown) { console.log('POST failed.'); } }); } else { console.log('CORS not supported.'); }
通過這種方式,您可以更好地處理IE中的AJAX請求錯誤,對于其他瀏覽器,使用$.support.cors屬性也是可行的。