AJAX 工作原理
AJAX 发送请求 

AJAX XMLHttpRequest

在 AJAX 中,XMLHttpRequest 起着非常重要的作用。XMLHttpRequest 用于在后台与Web服务器交换数据,而用户/客户端在前台工作,然后使用接收到的数据更新网页的一部分,而无需重新加载整个页面。


我们也可以说 XMLHttpRequest (XHR) 可以被各种 Web 浏览器脚本语言(如 JavaScript、JScript、VBScript 等)使用,在 HTTP 的帮助下与 Web 服务器交换 XML 数据。除了 XML,XMLHttpRequest 还可以获取各种格式的数据,如 JSON 等。它在客户端和服务器端之间创建异步连接。


使用语法

variableName = new XMLHttpRequest()

在使用新关键字和 XMLHttpRequest() 构造函数的情况下,我们可以创建一个新的 XMLHttpRequest 对象。在调用 open() 函数以初始化它之前,必须在调用 send() 函数以将请求发送到 Web 服务器之前创建此对象。


XMLHttpRequest 对象方法

XMLHttpRequest对象具有以下方法:

方法名方法描述
new XMLHttpRequest()用于创建 XMLHttpRequest() 对象
getAllResponseHeaders()用于获取标头信息
getResponseHeader()用于获取特定的标头信息
open(method, url, async, user, psw)

用于初始化请求参数。

method:请求类型GET或POST或其他类型

url:文件位置

async:对于设置为 true 的异步或设置为 false 的同步

user:可选用户名

psw:用于可选密码

send()它用于向 Web 服务器发送请求。它通常用于 GET 请求。
send(string)它用于向服务器发送请求。它通常用于 POST 请求。
setRequestHeader()它用于设置请求头


XMLHttpRequest 对象属性

XMLHttpRequest对象具有以下属性 

属性名属性描述
onreadystatechange设置处理请求状态更改的回调函数。
readyState

用于保存 XMLHttpRequest 的状态。它具有以下值 -

0:请求未初始化(未调用open())。

1:服务器连接已建立(已调用open(),但尚未调用send())。

2:请求已接收(已调用send(),响应头和响应状态已可获取)。

3:请求处理中(正在下载响应体,响应体部分可用)。

4:请求已完成,响应已就绪(整个请求过程已结束)。

responseText用于将响应数据作为字符串返回
responseXML用于将响应数据作为 XML 数据返回
Status

用于返回请求的状态号。例如 -

200:正常

403:禁止

404:未找到

StatusText

用于返回状态文本。例如,“OK”、“Not Found”等。


XMLHttpRequest 的用法

在了解了 XMLHttpRequest 的基本语法、方法和属性之后,我们现在学习如何在现实生活中使用 XMLHttpRequest。因此,要在程序中使用 XMLHttpRequest,首先我们需要遵循以下主要步骤:


第 1 步 - 创建 XMLHttpRequest 对象

var variableName = new XMLHttpRequest()



第 2 步 - 在创建 XMLHttpRequest 对象后,我们现在必须定义一个回调函数,该函数将在从 Web 服务器获取响应后触发。

XMLHttpRequestObjectName.onreadystatechange = function(){
   // Callback function body
}
XMLHttpRequestObjectName.open(method, url, async);
XMLHttpRequestObjectName.send();


第 3 步 - 现在我们使用 open() 和 send() 函数向 Web 服务器发送请求。