以下簡稱:xhr
為伺服器傳送請求和解析伺服器響應提供了流暢的介面。能夠以非同步的方式從伺服器獲得更多資訊,意味著使用者單擊後不用重新整理頁面也可以取得新資料。也就是說,ajax技術中使用xhr物件取得新資料,再通過dom將新資料插入頁面中。
xhr.open(『要傳送的請求型別』,『請求的url』,是否非同步傳送的布林值);
//沒真發,就是啟動乙個請求以備傳送
xhr.send();//真髮了收伺服器響應後,響應的資料會自動填充xhr物件的屬性,如下
xhr.open(『get』,『/post.jsonl』,true);
xhr.send();
if((xhr.status>=200 && xhr.status<300)||xhr.status==304)else還有些xhr屬性,如:
readystate:表示請求/響應過程的活動階段,可取的值如下
0:未初始化。還沒呼叫open方法。
1:啟動。呼叫了open還沒send。
2:傳送。呼叫了send,還沒收到響應。
3:接收。已經接收部分資料。
4:完成。接收完畢所有響應資料。
只要readystate一改變就觸發readystatechange事件。
xhr.onreadystatechange=function()else
}} ;
xhr.open(『get』,『/post.jsonl』,true);
xhr.send();http頭部資訊:
自定義http頭部資訊,為啥要設定這個的建議去看http**一書。
xhr.setrequestheader("頭部字段", "頭部欄位的值");
把這個放在open和send中間使用。
xhr.getresponseheader("頭部字段"):得到相應的值。
xhr.getallpesponseheaders();
//得到乙個包含所有頭部資訊的長字串。
最常見用於想伺服器查詢某些資訊。對於xhr來說,url末尾的查詢字串必須經過正確的編碼才行。
tips:所有名-值對兒都必須由&分開。
查詢字串中每個引數的名稱和值都必須使用encodeuricomponent()進行編碼
xhr.open("get","example.php?name1=value1&name2=value2",true);
可以使用這個函式來幫助向現有url末尾新增查詢字串引數
function addurlparam(url,name,value)
下面結合實際例子來使用這個函式
function addurlparam(url,name,value)
var url="example.php";
url=addurlparam(url,"name","you***ther");
url=addurlparam(url,"book","your****book");
xhr.open("get",url,false);
postfunction submitdata()else
} }};xhr.open("post","example.php",true);
var form=document.getelementbyid('user-info');
xhr.send(serialize(form));
//而在xmlhttprequest2中規定了
formdata物件
new 乙個formdata物件後,xhr.send(new formdata(form));
這樣就不需要手動寫請求頭
跨域
除了ie定義了乙個xdr(xdomainrequest)型別外,其他主流瀏覽器都可以直接用標準的xhr物件來實現跨域請求。
Ajax核心 XMLHTTP元件相關技術資料
一 資料庫遠端管理技術 基於網際網路的廣域網現代應用中的乙個重要環節是資料庫遠端監控。首先簡單回顧一下網際網路上的資料庫遠端管理技術的發展過程和方式 推薦文章 ajax專題 早期通過編寫cgi bin程式模組進行資料庫遠端管理。但cgi bin的執行速度慢,維護很不方便,現在已經基本被棄用。這幾年使...
Ajax核心 XMLHTTP元件相關技術資料
一 資料庫遠端管理技術 基於網際網路的廣域網現代應用中的乙個重要環節是資料庫遠端監控。首先簡單回顧一下網際網路上的資料庫遠端管理技術的發展過程和方式 推薦文章 ajax 專題 早期通過編寫cgi bin程式模組進行資料庫遠端管理。但cgi bin的執行速度慢,維護很不方便,現在已經基本被棄用。這幾年...
Ajax核心 XMLHTTP元件相關技術資料
一 資料庫遠端管理技術 基於網際網路的廣域網現代應用中的乙個重要環節是資料庫遠端監控。首先簡單回顧一下網際網路上的資料庫遠端管理技術的發展過程和方式 推薦文章 ajax專題 早期通過編寫cgi bin程式模組進行資料庫遠端管理。但cgi bin的執行速度慢,維護很不方便,現在已經基本被棄用。這幾年使...