XMLHttpRequest 對象用于與服務器交換數(shù)據(jù)。
主流瀏覽器(Chrome,F(xiàn)irefox,IE7 +,Edge,Safari,Opera)都具有內(nèi)置 XMLHttpRequest 對象。
XMLHttpRequest 通過與后臺的 Web 服務器交換數(shù)據(jù),來異步更新局部網(wǎng)頁,而不必刷新整個頁面。
在客戶端和服務器之間執(zhí)行 AJAX 通信之前,首先要做的是示例化一個 XMLHttpReques t對象,如下所示:
var httpRequest = new XMLHttpRequest();測試看看?/?
出于安全原因,瀏覽器不允許跨域訪問。也就是當前網(wǎng)頁和 ajax 要請求的網(wǎng)頁地址要在同一個域名下。
(cainiaoplus.com)上的實例都是與(cainiaoplus.com)域中的地址交互。
如果要在自己的網(wǎng)頁上使用上面的示例,則請求的目標地址必須位于您自己的服務器上。
Internet Explorer的舊版本(6和更早版本)使用的是ActiveX對象而不是XMLHttpRequest對象。
要處理IE6及更早版本,請檢查瀏覽器是否支持該XMLHttpRequest對象,否則創(chuàng)建一個ActiveX對象:
var httpRequest; if (window.XMLHttpRequest) { // 目前主流的瀏覽器(Chrome, Mozilla, Safari, IE7+, ...) httpRequest = new XMLHttpRequest(); } else if (window.ActiveXObject) { // <= IE 6 或早期IE版本 httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }測試看看?/?
下表列出了XMLHttpRequest對象的所有屬性:
屬性 | 描述 |
---|---|
onreadystatechange | 定義當readyState屬性更改時要調(diào)用的函數(shù) |
readyState |
保持XMLHttpRequest的狀態(tài): 0:請求未初始化 1:服務器連接建立 2:收到請求 3:處理請求 4:請求完成并且響應準備就緒 |
responseText | 以字符串形式返回響應數(shù)據(jù) |
responseXML | 將響應數(shù)據(jù)作為XML數(shù)據(jù)返回 |
status |
返回請求的狀態(tài)號: 200:“OK” 403:“Forbidden” 404:“Not Found” 有關完整列表,請訪問HTTP狀態(tài)代碼參考 |
statusText | 返回狀態(tài)文本(例如,“OK”或“Not Found”) |
下表列出了XMLHttpRequest對象的所有方法:
方法 | 描述 |
---|---|
new XMLHttpRequest() | 創(chuàng)建一個新的XMLHttpRequest對象 |
abort() | 取消當前請求 |
getAllResponseHeaders() | 返回標題信息 |
getResponseHeader() | 返回特定的標頭信息 |
open(method, url, async) |
指定請求 method:請求類型GET或POST url:文件位置 async:true(異步)或false(同步) |
send() |
將請求發(fā)送到 用于GET請求的服務器 |
send(string) |
將請求發(fā)送到服務器。 用于POST請求 |
setRequestHeader(header, value) |
將HTTP標頭設置為請求 header:指定標頭名稱 value:指定標頭值 |