AJAX-服務器響應-onreadystatechang 事件文檔大全學習知識點

XML 技術 H5混合開發 H5混合開發 2017-09-14

AJAX - 服務器 響應

AJAX-服務器響應-onreadystatechang 事件文檔大全學習知識點


服務器響應

如需獲得來自服務器的響應,請使用 XMLHttpRequest 對象的 responseText 或 responseXML 屬性。

屬性描述
responseText獲得字符串形式的響應數據。
responseXML獲得 XML 形式的響應數據。

responseText 屬性

如果來自服務器的響應並非 XML,請使用 responseText 屬性。

responseText 屬性返回字符串形式的響應,因此您可以這樣使用:

實例

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

嘗試一下 »


responseXML 屬性

如果來自服務器的響應是 XML,而且需要作為 XML 對象進行解析,請使用 responseXML 屬性:

實例

請求 cd_catalog.xml 文件,並解析響應:

xmlDoc=xmlhttp.responseXML;txt="";x=xmlDoc.getElementsByTagName("ARTIST");for(i=0;i<x.length;i++){txt=txt + x[i].childNodes[0].nodeValue + "<br>";}document.getElementById("myDiv").innerHTML=txt;

AJAX - onreadystatechange 事件


onreadystatechange 事件

當請求被髮送到服務器時,我們需要執行一些基於響應的任務。

每當 readyState 改變時,就會觸發 onreadystatechange 事件。

readyState 屬性存有 XMLHttpRequest 的狀態信息。

下面是 XMLHttpRequest 對象的三個重要的屬性:

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

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

  • 0: 請求未初始化

  • 1: 服務器連接已建立

  • 2: 請求已接收

  • 3: 請求處理中

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

status200: "OK"

404: 未找到頁面

在 onreadystatechange 事件中,我們規定當服務器響應已做好被處理的準備時所執行的任務。

當 readyState 等於 4 且狀態為 200 時,表示響應已就緒:

實例

xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4 && xmlhttp.status==200){document.getElementById("myDiv").innerHTML=xmlhttp.responseText; }}

嘗試一下 »

注意: onreadystatechange 事件被觸發 5 次(0 - 4),對應著 readyState 的每個變化。


使用回調函數

回調函數是一種以參數形式傳遞給另一個函數的函數。

如果您的網站上存在多個 AJAX 任務,那麼您應該為創建 XMLHttpRequest 對象編寫一個標準的函數,併為每個 AJAX 任務調用該函數。

該函數調用應該包含 URL 以及發生 onreadystatechange 事件時執行的任務(每次調用可能不盡相同):

實例

functionmyFunction(){loadXMLDoc("/try/ajax/ajax_info.txt",function(){if(xmlhttp.readyState==4 && xmlhttp.status==200){document.getElementById("myDiv").innerHTML=xmlhttp.responseText; }});}

嘗試一下 »

AJAX XMLHttpRequest 服務器響應

AJAX ASP/PHP

筆記列表

  1. CBH

    155***[email protected]

    服務器常用的狀態碼及其對應的含義如下:

    CBH

    CBH

    155***[email protected]

    5個月前 (04-11)

  • 200:服務器響應正常。

  • 304:該資源在上次請求之後沒有任何修改(這通常用於瀏覽器的緩存機制,使用GET請求時尤其需要注意)。

  • 400:無法找到請求的資源。

  • 401:訪問資源的權限不夠。

  • 403:沒有權限訪問資源。

  • 404:需要訪問的資源不存在。

  • 405:需要訪問的資源被禁止。

  • 407:訪問的資源需要代理身份驗證。

  • 414:請求的URL太長。

  • 500:服務器內部錯誤。

  1. 1778757629

    lix***[email protected]

    補全狀態碼避免再去搜:

    100——客戶必須繼續發出請求

    101——客戶要求服務器根據請求轉換HTTP協議版本

    200——交易成功

    201——提示知道新文件的URL

    202——接受和處理、但處理未完成

    203——返回信息不確定或不完整

    204——請求收到,但返回信息為空

    205——服務器完成了請求,用戶代理必須復位當前已經瀏覽過的文件

    206——服務器已經完成了部分用戶的GET請求

    300——請求的資源可在多處得到

    301——刪除請求數據

    302——在其他地址發現了請求數據

    303——建議客戶訪問其他URL或訪問方式

    304——客戶端已經執行了GET,但文件未變化

    305——請求的資源必須從服務器指定的地址得到

    306——前一版本HTTP中使用的代碼,現行版本中不再使用

    307——申明請求的資源臨時性刪除

    400——錯誤請求,如語法錯誤

    401——請求授權失敗

    402——保留有效ChargeTo頭響應

    403——請求不允許

    404——沒有發現文件、查詢或URl

    405——用戶在Request-Line字段定義的方法不允許

    406——根據用戶發送的Accept拖,請求資源不可訪問

    407——類似401,用戶必須首先在代理服務器上得到授權

    408——客戶端沒有在用戶指定的餓時間內完成請求

    409——對當前資源狀態,請求不能完成

    410——服務器上不再有此資源且無進一步的參考地址

    411——服務器拒絕用戶定義的Content-Length屬性請求

    412——一個或多個請求頭字段在當前請求中錯誤

    413——請求的資源大於服務器允許的大小

    414——請求的資源URL長於服務器允許的長度

    415——請求資源不支持請求項目格式

    416——請求中包含Range請求頭字段,在當前請求資源範圍內沒有range指示值,請求也不包含If-Range請求頭字段

    417——服務器不滿足請求Expect頭字段指定的期望值,如果是代理服務器,可能是下一級服務器不能滿足請求

    500——服務器產生內部錯誤

    501——服務器不支持請求的函數

    502——服務器暫時不可用,有時是為了防止發生系統過載

    503——服務器過載或暫停維修

    504——關口過載,服務器使用另一個關口或服務來響應用戶,等待時間設定值較長

    505——服務器不支持或拒絕支請求頭中指定的HTTP版本

    1778757629

    1778757629

    lix***[email protected]

    3周前 (08-21)

相關推薦

推薦中...