我最近重構了一些ajax代碼以使其異步。它之前完美的工作,但我想使用jQuery的承諾,所以我jQuerified它。但是,現在,除了IE之外,每個瀏覽器都可以使用ajax調用。jquery ajax僅在IE中失敗
IE9在ajax函數被分配變量名稱時拋出錯誤。在IE中的錯誤是:
「對象不支持此方法或99行上的屬性。」
下面是一大塊,其中發生錯誤:
if (screen.width > 525 && svgSupported) {
$loadingSvg = $.ajax({
type: 'GET',
url: 'images/mypicture.svg',
dataType: 'xml',
success: function(data){
console.log("Ajax request successfully returned: " + data);
console.log(data);
},
error: function(data){
console.log("Ajax request failed: " + data);
}
});
}
我已經嘗試了一些明顯的事情,其他人在類似情況下建議對SO,像JQ $(文件)。就緒包裝的一切。這並沒有解決它。變量在腳本的頂部全局聲明,所以不是這樣。任何想法,鄉親?
這是一個友好的提示,您可能有上面的問題,因爲您的代碼每次請求相同的圖像。但是您可能想要注意在IE中發出GET ajax請求時發生的緩存。 IE會緩存您的GET請求,除非您在ajax選項中指定了=>「cache:false」。 或者你可以添加這個地方,載有所有你的JavaScript: $ .ajaxSetup({// 的AJAX響應禁用緩存 緩存:假 }); – antony
謝謝,但這是我想要做的:緩存圖像,出於性能原因。我將默認的''true''離開緩存選項。如果發現一個GET請求被發現已經存在於瀏覽器的緩存中,那麼我認爲在所有情況下,該請求仍然會返回成功。(?)這一點上瀏覽器之間是否存在文檔差異? – Ben