Ajax篇
XMLDocument和XMLHttpRequest對象
第一:創建XMLHttpRequest請求對象
代碼如下:
function getXMLHttpRequest() {
var xRequest=null;
if(window.XMLHttpRequest) {
xRequest=new XMLHttpRequest();
}else if(typeof ActiveXObject != "undefined"){
xRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
return xRequest;
}
或者:
代碼如下:
var request=null;
function createRequest() {
try {
request=new XMLHttpRequest(); //非Microsoft IE瀏覽器
} catch (trymicrosoft) { //Microsoft IE
try {
request=new ActiveXObject(“Msxml2.XMLHTTP”);
} catch (othermicrosoft) {
try {
request=new ActiveXObject(“Microsoft.XMLHTTP”);
} catch (failed) {
request=null;
}
}
}
if (request==null)
alert(“Error creating request object!”);
}
[code]
這個獨立的創建XMLHttpRequest請求對象的函數就可以被調用了。
注意:XMlHTTP對象不是W3C標準,因此在創建時要分別考慮不同瀏覽器環境的支持。
XMLHTTP對象一共就6個方法8個屬性,支持兩種執行模式:同步和異步。
XMLHTTP對象的屬性和方法列表(來自IXMLHTTPRequest接口): 屬性名
類型
描述
onreadystatechange
N/A
指定當就緒狀態發生改變時調用的事件處理函數,僅用于異步操作
readyState
Long
異步操作的狀態:未初始化(0),正在加載(1),已加載(2),交互(3),已完成(4)
responseBody
Variant
將響應信息正文作為unsigned byte數組返回
responseStream
Variant
將響應信息正文作為一個ADO Stream對象返回
responseText
String
將響應信息正文作為一個文本字符串返回
responseXML
Object
通過XMLDom將響應信息正文解析為XMLDocument對象
status
Long
服務器返回的HTTP狀態碼
statusText
String
服務器HTTP響應行狀態
方法名
描述
abort
取消當前 HTTP 請求
getAllResponseHeaders
從響應信息中檢索所有的首部字段
getResponseHeader
從響應信息正文中獲得一個 HTTP 首部字段值
open(method,url,boolAsync,bstrUser,bstrPassword)
打開一個與 HTTP 服務器的連接
send(varBody)
向HTTP服務器發送請求。可包含正文。
setRequestHeader(bstrHeader, bstrValue)
設定一個請求的首部字段
第二:向服務器發送請求
通過XMLHttpRequest對象向服務器發送請求是非常簡單,只需要給它傳遞一個服務器頁面的URL,這個頁面將生成數據。
[code]
function sendRequest(url,params,HttpMethod) {
if(!HttpMethod){
HttpMethod="POST";
}
var req=getXMLHttpRequest();
if(req){
req.open(HttpMethod,url,true);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
req.send(params);
}
}
通過以上代碼對請求進行設置后,會立即將控制權返回給我們,與此同時網絡和服務器則忙著執行它們自己的任務。
新聞熱點
疑難解答