你好,我注意到,這個簡單的代碼不工作,它應該工作的方式......
function test() {
$.ajax({
'url' : 'test/GameConfiguration.json',
'dataType' : 'json',
data : {
a : 'aaa'
},
cache : false,
method : 'get',
timeout : 10000, //10 secs of timeout
success : function(data, textStatus, XMLHttpRequest) {
console.log("success");
if (data == null)
console.log("it's not a real success");
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
console.log("error: " + textStatus);
}
});
}
測試已在本地主機上運行,我的意思是:我加載頁面,關閉本地web服務器,然後我發起請求(通過一個簡單的按鈕,onclick指向這個函數)。錯誤不會被調用,我得到的是成功處理程序調用,它有textStatus =「success」和data = null。我甚至注意到請求在10秒之前超時。 這發生在Firefox(最新版本),Chrome(最新版本)和Safari 5.這是爲什麼?是否因爲我在本地主機上工作?
我忘了告訴:請求沒有被緩存。事實上,螢火蟲和Chrome開發工具都會顯示失敗的要求。
大更新
此行爲與使用本地主機。事實上,如果我從另一個同事PC加載此頁面,並在觸發請求之前斷開我的PC與網絡的連接,我將錯誤處理程序正確地啓用,並將超時設置爲狀態。我認爲這是jQuery的一個bug。這會讓我很難測試超時錯誤:(
傢伙從jQuery的論壇上說,這是由於網絡堆棧中止連接的方式,給定主機爲localhost,我測試了在Windows 7只是如果你覺得測試這個在其他系統上,你可以在jQuery的論壇,制定出一些jQuery的內部,報告這個帖子:
做爲什麼你'「url''和'」引述字符串dataType''? – Codesleuth 2010-09-01 10:00:39
我試圖刪除引號:沒有區別 – gotch4 2010-09-01 10:02:06
你可以爲此顯示一個演示頁面嗎? – Nalum 2010-09-01 10:14:35