第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

XMLHttpRequest 介紹

在上一節(jié)我們已經(jīng)粗略的講過了 XMLHttpRequest 是 Ajax 的核心技術(shù)。是的,可以說,沒有 XMLHttpRequest 這樣的技術(shù)存在,Ajax 就是不完整的,甚至可以說就不會(huì)有 Ajax 這樣的技術(shù)存在。那么,什么是 XMLHttpRequest 呢?

1. XMLHttpRequest 的由來

首先倒推到 1999 年間,這一年,Microsoft 在 Internet Explorer 5.0 中首次使用了一個(gè)技術(shù)。通過這個(gè)技術(shù),瀏覽器頁面可以不用通過頁面重載或者表單提交,就可以將信息發(fā)送到服務(wù)器,完成信息的交互。這個(gè)技術(shù)就是 ActiveX 對象,即 XMLHTTP。

這個(gè)技術(shù)發(fā)布之后,得到了業(yè)界的一致歡迎。直到 2000 年的時(shí)候,基本成為了一種標(biāo)準(zhǔn)。同時(shí),Mozilla 、Opera 等也相繼實(shí)現(xiàn)了一種具有相同接口的原生對象,即我們現(xiàn)在所看到的 XMLHttpRequest 。后來,XMLHttpRequest 也成為了這個(gè)技術(shù)的名稱。

2. 什么是 XMLHttpRequest

XMLHttpRequest 實(shí)質(zhì)上就是一種具有發(fā)送異步請求功能的技術(shù),是一個(gè)可以在 javaScript 、JScript 、VBScript 等腳本語言中使用的 API 對象。它可以通過異步發(fā)送 HTTP 請求,完成前后端的交互。在我們的客戶端界面上,無刷新交互只是一種表現(xiàn),而異步發(fā)送請求才是這個(gè)技術(shù)的根本。

目前為止,XMLHttpRequest 早已成為正式的規(guī)范。并且在大多數(shù)瀏覽器上都得到了支持。

3. XMLHttpRequest 的屬性和方法

接下來我們會(huì)對 XMLHttpRequest 的屬性和方法做一個(gè)簡單的展開學(xué)習(xí),主要是認(rèn)識一下 XMLHttpRequest 到底提供了一些什么功能屬性。為之后的學(xué)習(xí)做一個(gè)基本的概念性了解。

3.1 XMLHttpRequest 的屬性

3.1.1 標(biāo)準(zhǔn)屬性

屬性名 備注
onreadystatechange 當(dāng) readyState 發(fā)生變化時(shí)候觸發(fā)
readyState 請求狀態(tài)碼。
response 返回一個(gè) Blob 、ArrayBuffer 、Document 或 DOMString。類型受 responseType 影響。
responseText 返回一個(gè) DOMString。請求不成功或者未發(fā)送情況下返回 null。
responseType 響應(yīng)類型。
responseURL 返回序列化 URL,URL 為空則返回空字符串。
responseXML 返回一個(gè) Document。請求未發(fā)送、不成功或者解析失敗,返回 null。
status 請求的響應(yīng)狀態(tài)。
statusText 返回一個(gè) DomString, 包含 http 響應(yīng)狀態(tài)。
timeout 超時(shí)。定義一個(gè)最大的請求響應(yīng)時(shí)間。
ontimeout 超時(shí)調(diào)用事件。
upload 上傳過程。
withCredentials 指定跨域請求是否帶有授權(quán)信息。

3.1.2 非標(biāo)準(zhǔn)屬性

屬性名 備注
channel 一個(gè) nsIChannel,當(dāng)執(zhí)行請求時(shí),對象使用的通道。
mozAnon 布爾值。為 true 情況下,請求在將在沒有身份驗(yàn)證 header 頭和 cookie 的情況下發(fā)送。
mozSystem 布爾值。為 true 情況下,請求將不強(qiáng)制執(zhí)行同源策略。
mozBackgroundRequest 布爾值。指示是否是服務(wù)器的請求。

3.2 XMLHttpRequest 的方法

3.2.1 標(biāo)準(zhǔn)方法

方法名 備注
abort 中止請求
getAllResponseHeaders 返回所有用 CRLF 分隔的響應(yīng)頭的字符串的形式。沒有收到響應(yīng)則返回 null。
getResponseHeader 返回指定響應(yīng)頭的字符串。未收到響應(yīng),或者響應(yīng)不存在該報(bào)頭,返回 null。
open 初始化一個(gè)請求。
overrideMimeType 重寫 MIME 類型。
send 發(fā)送請求。
setRequestHeader 設(shè)置 HTTP 請求頭。

3.2.2 非標(biāo)準(zhǔn)方法

方法名 備注
openRequest 初始化一個(gè)請求。

3.3 XMLHttpRequest 的事件

事件名 備注
abort 停止請求的時(shí)候觸發(fā)。
error 當(dāng)請求發(fā)生錯(cuò)誤的時(shí)候觸發(fā)。
load 請求成功完成的時(shí)候觸發(fā)。
loadend 請求結(jié)束的時(shí)候觸發(fā)。
loadstart 收到響應(yīng)數(shù)據(jù)的時(shí)候觸發(fā)。
progress 接收數(shù)據(jù)開始周期時(shí)候觸發(fā)。
timeout 超時(shí)未接收到數(shù)據(jù)的時(shí)候觸發(fā)。

4. 兼容性

即便 XMLHttpRequest 在絕大多數(shù)瀏覽器都得到支持,但仍有部分對象屬性和方法不被少數(shù)瀏覽器所兼容。我們可以通過 Can I use 進(jìn)行查閱。下面給出一個(gè)截至當(dāng)前為止 XMLHttpRequest 在各瀏覽器上的兼容性表格進(jìn)行參照。
圖片描述

5. 小結(jié)

  • XMLHttpRequest 現(xiàn)在已經(jīng)成為了標(biāo)準(zhǔn),并且被絕大部分的瀏覽器所支持,兼容性好。
  • XMLHttpRequest 擁有豐富的屬性、方法及事件調(diào)用,滿足我們對異步請求的大部分需求。