- 創(chuàng)建Ajax核心對象XMLHttpRequest
var xmlhttp;
var xmlhttp;
if (window.XMLHttpRequest) {
// 兼容 IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {
// 兼容 IE6, IE5
xmlhttp=newActiveXObject("Microsoft.XMLHTTP");
}
- 向服務器發(fā)送請求
xmlhttp.open(method,url,async);
send(string)
open的參數(shù):
method: 請求的類型: GET或POST
url: 文件在服務器上的位置
async: true(異步)false(同步)
send(string)方法post請求時才使用字符串參數(shù),否則不用帶參數(shù)。
注意:post請求一定要設置請求頭的格式內(nèi)容
xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
3.服務器響應處理
responseText 獲得字符串形式的響應數(shù)據(jù)里逆。
responseXML 獲得XML 形式的響應數(shù)據(jù)。
3.1 同步處理
xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
3.2異步處理
異步處理相對比較麻煩用爪,要在請求狀態(tài)改變事件中處理原押。
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 &&xmlhttp.status==200){
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.readyState一共有5種請求狀態(tài),從0到4發(fā)生變化
0: 請求未初始化
1: 服務器連接已建立
2: 請求已接收
3: 請求處理中
4: 請求已完成偎血,且響應已就緒
xmlhttp.status:響應狀態(tài)碼诸衔。這個也是面試比較愛問的,這個必須知道4個以上颇玷,比較常見的有:
200: "OK"
403 (禁止) 服務器拒絕請求笨农。
404 (未找到) 服務器找不到請求的網(wǎng)頁。
408 (請求超時) 服務器等候請求時發(fā)生超時帖渠。
500 (服務器內(nèi)部錯誤) 服務器遇到錯誤谒亦,無法完成請求。