1
我正在爲一個堅持jQuery 1.4.3的站點編寫Ajax代碼。碰巧我的Ajax調用收到一個TCP拒絕(這是可以的,也是項目的一部分)。不幸的是,這個jQuery版本complete
永遠不會被調用。使用jQuery 2它可以工作,並且status
包含error
。我無法更新jQuery版本。
由於TCP拒絕而導致Ajax失敗的代碼能夠修復嗎?
這是我的代碼的一個簡化部分,重現了這個問題。它假定localhost:9999
被拒絕。
$(document).ready(function() {
$.ajax({
url: 'http://localhost:9999',
crossDomain: true,
dataType: 'script',
complete: function(XMLHTTPRequest, status) {
console.log(status);
},
});
});
我成立了一個http://jsfiddle.net/c2Yt6/在那裏你可以測試一下:即使使用jQuery 1.6.4是不工作,但jQuery的2.0.2就可以了。
如何捕獲TCP拒絕錯誤?
我建議通過的第一個參數'onerror'的處理程序,因爲它包含其中包含有用信息的錯誤事件。 –
@dboehmer你仍然可能需要's.onerror = function(e){e = e || window.event;'IE,但我不確定。 – HMR