您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“ajax中xmlHttpRequest對象有什么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“ajax中xmlHttpRequest對象有什么用”這篇文章吧。
ajax的xmlHttpRequest對象
XMLHttpRequest對象是ajax的核心,它有許多屬性,方法和事件以便于腳本的處理和控制http的請求響應。如果你一直在使用原生的javascript做開發,那么在使用ajax的過程中,這個對象你需要非常了解,假使你用jquery之類的封裝框架的話,那么多對它有一份了解,也能加深你對ajax的理解。
下面是它的一些屬性的介紹:
1.readState屬性:當xmlHttpRequest對象被創建后,這個屬性,會告訴你,核心對象被創建后,是處于何種狀態,是否可以訪問或者處理,readState可以等于0,1,2,3,4;分別表示,0:已創建對象,但未初始化(如:int i;),1:已調用對象的open()方法,準備發送請求,2:已調用send()方法去請求,但是未得到響應,3:正在響應 ,4:完成響應,完成httpResponse響應的接收。
2.responseText屬性:包含了客戶端接收到的來自http響應的文本內容。當readState為0,或1或2時,該屬性是一個空字符串,當為3時,是部分已接收到的字符串,當為4時,該屬性為完整的響應信息。
3.responseXml屬性:只有當readyState=4且響應頭部的Content-Type的類型指定為XML(text/xml或者application/xml)時,該屬性的值才為一個xml文檔,否則為null,假使回傳的xml格式不良或者未完成響應回傳,該屬性值也為null。它被用來描述xmlHttpRequest對象解析xml文檔后的屬性。
4.status屬性:標記了http狀態代碼。只有在readyState=3或者4時,這個屬性才能進行訪問,否則獲取該屬性時,將引發異常。
5.statusText屬性:標記了http狀態代碼的文本。只有在readyState=3或者4時,這個屬性才能進行訪問,否則獲取該屬性時,將引發異常。
下面是它的一個事件介紹:onreadystatechange事件
每當readyState的屬性發生改變,就會觸發該事件, 為ajax請求中使用最為頻繁的核心事件。
下面是一些方法的介紹:
1.open():xmlHttpRequest對象通過調用open(method,uri,async,username,password)方法,進行初始化工作。調用該方法后,返回一個可以進行發送(send()方法)的對象。method為必填參數,按照http規范,可以為GET,POST,PUT,DELETE和HEAD;uri用于指定xmlHttpRequest對象請求的服務器地址,可以為相對路徑或者絕對路徑,最終都將解析為絕對路徑;async用于指定是否異步,默認為true;如果服務器需要驗證訪問用戶,那么username和password的這兩個參數即可以使用到。
2.send():send()方法將open()方法中的參數進行請求發送,即它只能在open()調用之后,才能調用,即readState=1之后才能調用send(),在send()接受到響應信息之前,readyState=2,一旦send()接受到響應信息,readyState=3,直到最后接受完成,readyState=4。send方法使用也貴可選的參數,該參數可以包含可變類型的數據。對于大。多數的其它的數據類型,在調用send()之前,應該使用setRequestHeader()設置Content-Type 。一般使用send(null)顯示調用該方法,假使send(data)中的data類型是DOMString,數據被編輯為utf-8,如果是Document,則由
data.xmlEncoding指定的編碼串行化該數據。
3.about():可以暫停一個httpRequest的請求發送或者接收,并且將xmlHttpRequest對象設置為初始化狀態。
4.setRequestHeader():設置請求的頭部信息,當readyState=1時,可以在調用open()后調用它,否則會得到異常。
. 5.setResponseHeader():用于檢索響應頭信息,當readyState=4或者3時,才可以調用,否則得到一個空字符串。此外,getAllResponseHeader()用于獲得所有的httpResponse的頭部信息。
以上是“ajax中xmlHttpRequest對象有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。