AJAX - XMLHttpRequest 对象
AJAX 的核心是 XMLHttpRequest 对象。
XMLHttpRequest 对象
所有现代浏览器都支持 XMLHttpRequest 对象。
XMLHttpRequest 对象可用于在后台与服务器交换数据。这意味着可以更新网页的某些部分,而无需重新加载整个页面。
创建 XMLHttpRequest 对象
所有现代浏览器(Chrome、Firefox、Edge(和 IE7+)、Safari、Opera)都内置了 XMLHttpRequest 对象。
创建 XMLHttpRequest 对象的语法
变量 = new XMLHttpRequest();
上面示例中使用的 “ajax_info.txt” 文件是一个简单的文本文件,内容如下:
<h1>AJAX</h1>
<p>AJAX 不是一种编程语言。</p>
<p>AJAX 是一种从网页访问 Web 服务器的技术。</p>
<p>AJAX 代表异步 JavaScript 和 XML。</p>
跨域访问
出于安全原因,现代浏览器不允许跨域访问。
这意味着网页和它尝试加载的 XML 文件必须位于同一服务器上。
W3Schools 上的示例都打开位于 W3Schools 域上的 XML 文件。
如果您想在您自己的网页上使用上面的示例,您加载的 XML 文件必须位于您自己的服务器上。
XMLHttpRequest 对象方法
方法 | 描述 |
---|---|
new XMLHttpRequest() | 创建新的 XMLHttpRequest 对象 |
abort() | 取消当前请求 |
getAllResponseHeaders() | 返回标题信息 |
getResponseHeader() | 返回特定的标题信息 |
open(方法,url,异步,用户,密码) | 指定请求 方法: 请求类型 GET 或 POST url: 文件位置 异步: true(异步)或 false(同步) 用户: 可选用户名 密码: 可选密码 |
send() | 将请求发送到服务器 用于 GET 请求 |
send(字符串) | 将请求发送到服务器。 用于 POST 请求 |
setRequestHeader() | 在要发送的标题中添加标签/值对 |
XMLHttpRequest 对象属性
属性 | 描述 |
---|---|
onreadystatechange | 定义当 readyState 属性更改时要调用的函数 |
readyState | 保存 XMLHttpRequest 的状态。 0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 正在处理请求 4: 请求已完成且响应已准备就绪 |
responseText | 以字符串形式返回响应数据 |
responseXML | 以 XML 数据形式返回响应数据 |
status | 返回请求的状态编号 200: “OK” 403: “禁止” 404: “未找到” 有关完整列表,请访问 Http 消息参考 |
statusText | 返回状态文本(例如“OK”或“未找到”) |