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