首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

AJAX XMLHttpRequest readyState 狀態碼詳解:從未初始化到完成

     編輯:程式設計綜合問答

readyState 五個階段

值常量含義典型回調
0UNSENT對象創建,open() 未調用onCreate (Prototype)
1OPENEDopen() 已調用,send() 未調用-
2HEADERS_RECEIVED響應頭已接收onLoading (部分庫)
3LOADING響應體下載中onLoading / onProgress
4DONE請求完成 (成功/失敗/中止)onComplete / onSuccess / onFailure

常見庫的回調映射 (以 Prototype.js 為例)

Ajax.Request(url, {
    onCreate: function() { ... },        // readyState 0→1
    onLoading: function() { ... },       // readyState 3
    onLoaded: function() { ... },        // readyState 4 但未檢查 status
    onComplete: function(transport) {    // readyState 4
        if (transport.status == 200) onSuccess...
        else onFailure...
    }
});

現代 Fetch API 對比

fetch(url)
    .then(response => response.json()) // 響應頭已拿到,體流式讀取
    .then(data => console.log(data))
    .catch(err => console.error(err));
// 無 readyState 概念,基於 Promise 鏈處理各階段

調試技巧

xhr.onreadystatechange = function() {
    console.log('readyState:', xhr.readyState, 'status:', xhr.status);
    if (xhr.readyState === 4) {
        console.log('Response:', xhr.responseText);
    }
};
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved