AJAX問題 XMLHttpRequest.status = 0是什么含義


在調用AJAX的時候遇到了XMLHttpRequest. status為0 的情況,http協議里可是沒這個狀態碼的,眾所周知,XMLHttpRequest. Status為HTTP請求狀態碼,一般為1xx-5xx,這個0是什么含義,讓我覺得很好奇。

XMLHttpRequest 對象的三有個重要的屬性:

onreadystatechange 

存儲函數(或函數名),每當 readyState 屬性改變時,就會調用該函數。

readyState

存有 XMLHttpRequest 的狀態。從 0 到 4 發生變化。

0: 請求未初始化

1: 服務器連接已建立

2: 請求已接收

3: 請求處理中

4: 請求已完成,且響應已就緒

status 

200: "OK"

404: 未找到頁面

 

XMLHttpRequest status = 0 問題

最后翻啊翻啊,找啊找啊,終於找到一個XMLHttpRequest的說明

The status attribute must return the result of running these steps:

status的值一定會返回運行這些步驟的結果。

1、If the state is UNSENT or OPENED, return 0.(如果狀態是UNSENT或者OPENED,返回0)
2、If the error flag is set, return 0.(如果錯誤標簽被設置,返回0)
3、Return the HTTP status code.(返回HTTP狀態碼)

 

如果在HTTP返回之前就出現上面兩種情況,就出現0了。

后來我又查閱到了,0 代表本地響應成功。

 

先說兩個button,一個是url是:file:///E:/test2.html,另外一個是:http://www.baidu.com。第一個button的url訪問只是本地打開沒有通過服務器,自己可以用Wireshark捉包。

應該是xmlhttp自己在模擬,因為根本就沒通過服務器。本地直接打開而已。OPENED了,所以status為0。

 

第二個button的url訪問雖然是其他域名,抓包是有的,但是,這是跨域訪問了,

雖然去訪問了,應該是瀏覽器跨域的返回頭沒有允許,所以瀏覽器阻止,Access-Control-Allow-Origin這個屬性。所以status為0。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM