我是這個網站的新手,並且已成功使用「HTML5」跨源資源共享(CORS)將數據發佈到我的服務器。我最近試圖將GET包括進來,因爲我們試圖讓所有通信都不依賴於JavaScript庫。在這樣做的過程中,我遇到了一個奇怪的問題,對於Firefox來說似乎有點可修復,但在所有WebKit瀏覽器中仍然存在不當行爲。基本上任何返回狀態爲< 200或> 300的狀態都會以0的狀態進入。這使得幾乎不可能進行錯誤處理。使用HTML5進行跨源資源共享的問題
對於Firefox,我可以把一個隨機字符串,以防止它被緩存的請求結束;從而至少固定304。但在Chrome/Safari中,這對我來說完全不起作用。以下是我的代碼示例:
xhr_request: function(type,url, data, callbacks, form){
var form = (typeof(form)!=="undefined")?form:null;
var xhr = new XMLHttpRequest();
var response;
data = com.ticommunity.obj_to_string(data);
xhr.open(type, url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("X-TxId", com.ticommunity.keyGen());
xhr.withCredentials = true;
xhr.send(data);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
response = xhr.responseText;
com.ticommunity.comm.request_callback(response, callbacks, form);
}else{`//****this is where the 0 Status keeps coming up***`
response = xhr.status;
com.ticommunity.comm.request_callback(response, callbacks, form);
}
}
}
}
是否有其他人遇到過類似問題並提出解決方法?我只是在做我愚蠢的事情嗎?任何幫助是極大的讚賞。
編輯:我意識到0是應該發生的每規範,但我真的需要能夠陷阱這些情況下,並做一些其他處理。