一、XMLHttpRequst的出現纔有了異步處理web
二、建立XmlHttpRequest對象瀏覽器
var request=new XMLHttpRequest();服務器
注意:若是要兼容IE6如下瀏覽器則須要編寫以下代碼app
var request;異步
if(window.XMLRequest){async
request=new XMLRequestHttpRequest(); //IE七、IE八、360等url
}else{code
request=new ActiveXObject("Microsoft.XMLHTTP");//IE五、IE6orm
}xml
三、XMLHttpRequest發送請求
(1)open(method,url,async),參數的意義以下
method:GET或者POST請求方法
url:相對地址或者絕對地址
async:true或者false,默認是true,表示異步
(2)send(String)
GET請求無參數,POST請求時必定要有參數
舉例A:
request。open("GET",'getDate',true);
request.send();
舉例B:
request.open("POST","getDate",true)
//默認是"application/x-www-from"-urlencoden"方式提交,若是是提交文件,則須要修改爲爲multipart/form-data方式提交
request.setRequestHeader("Content-type","application/x-www-from"-urlencoden");
request.send("name=王二&age=25");
四、XMLHttpRequest取得響應
(1)responseText:得到字符串形式的響應數據
(2)responseXML:得到xml形式的響應數據
(3)status和statusText:以數字和文本形式返回Http轉態碼
(4)getAllResponseHeader():得到因此得響應報頭
(5)getResponseHeader():查詢響應中的某個字段的值
(6)readState屬性
"0"請求未初始化,open還未調用
"1":服務器鏈接已經創建,open已調用
"2":請求已接收,也就是接收到頭信息了
"3":請求處理中,也就是接收到響應主體了
"4":請求已經完成,且響應就緒,響應完成了
舉例:
var request;
request.open("GET","getDate",true);
request.send();
//監聽返回的轉態,200和4表明響應成功
request.onreadystatechange=fuction(){
if(request.readstate==4&&request.status==200){
//須要處理的事務
}
}
六、HTTP請求:是一種規則,無狀態,無記憶
HTTP請求過程
(1)創建TCP鏈接
(2)web瀏覽器向web服務器發送請求指令
(3)web瀏覽器發送請求頭信息
(4)web服務器應答
(5)web服務器發送應答頭信息
(6)web服務器向瀏覽器發送數據
(7)web服務器關閉TCP鏈接
A、HTTP請求的4個·組成部分
a、HTTP請求方法或者動做(GET/POST)
b、正在請求的URL
c、請求頭,包含客戶環境信息、身份信息等
d、請求體(正文),包含客戶提交的查詢字符串信息、表單信息
B、POST和GET方法
GET:(1)用於信息獲取
(2)使用URL傳遞參數
(3)String<=2000個字符左右
POST:(1)用於修改服務器上的資源
(2)String<=無窮大
C、一個HTTP響應由三個部分組成
a、一個數字和文字組成的轉態碼。做用:顯示請求是否成功
b、響應頭,包含服務器類型、日期、內容類型、長度等
c、響應體,即響應正文,字符串、HTML等
D、HTTP狀態碼由3個數字構成,其中首位數字定義了狀態碼的類型
1^^:信息類,表示收到web請求,正在進行處理中
2^^:成功,表示用戶請求被正確接收、理解和處理,如200
3^^:重定向,表示請求未成功,客戶必須採起動做
4^^:客戶端錯誤,客戶提交的信息有誤,如400
found:意味着請求中所引用的文檔不存在
5^^:服務器錯誤(最難處理的問題),表示服務器不能完成請求處理,如500