XMLHttpRequest
W3C 工作草稿 2009 年 11 月 19
-
此版本:
- http://www.w3.org/TR/2009/WD-XMLHttpRequest-20091119/ 最新版本:
- http://www.w3.org/TR/XMLHttpRequest/ 最新的编辑器版本:
- http://dev.w3.org/2006/webapi/XMLHttpRequest/ 以前的版本:
- http://www.w3.org/TR/2009/WD-XMLHttpRequest-20090820/
- http://www.w3.org/TR/2008/WD-XMLHttpRequest-20080415/
- http://www.w3.org/TR/2007/WD-XMLHttpRequest-20071026/
- http://www.w3.org/TR/2007/WD-XMLHttpRequest-20070618/
- http://www.w3.org/TR/2007/WD-XMLHttpRequest-20070227/
- http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060927/
- http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060619/
- http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/ 编辑器:
- 安妮 · 范 Kesteren (opera Software ASA) < annevk@opera.com >
版权所有 © 2009 W3C ® (麻省理工学院,ERCIM,京王) 保留所有权利。 W3C 责任、 商标、 文档使用 规则适用。
摘要
XMLHttpRequest 规范定义了一种API(应用程序接口),该API提供了在客户端和服务器之间传输数据的客户端脚本功能。
此文档的状态
本部分介绍此文档的状态在其发布的时间。 其他文件可能取代本文档。 W3C 技术报告索引 在 http://www.w3.org/TR/ 中,可以找到当前 W3C 发布和技术报告的最新版本的列表。
这是 19 2009 年 11 月最后调用工作草案 XMLHttpRequest 规范。 请评论前将发送给 public-webapps@w3.org (已存档) 与主题行的开头 [XHR] 2009 年 12 月 16。
本文档由 Web 应用程序 (webapp) 工作小组,在 W3C 作用域 中的 丰富 Web 客户端活动 的一部分。 W3C 公开 CVS 服务器 中,可以找到此文档所做更改。
为一个工作草稿发布并不表示认可,W3C 成员资格。 这是一份文件草案和更新、 更换也可以在任何时候过时的其他文档。 不宜引用此文档作为除正在进行的工作。
本文档由下一批创作,2004 年 2 月 5 W3C 专利政策。 W3C 维护 公共列表的任何专利公开 提出与组中的可交付结果 ; 该页面还包括公开专利的说明。 个人具备实际知识的一项专利,个人认为包含 基本的 Claim(s) 必须披露有关资料按照 W3C 专利政策的 6 条。
内容表
1 介绍
这一部分是不规范的。
XMLHttpRequest
对象实现一种允许脚本来执行诸如提交表单数据或从服务器的加载数据的HTTP 客户端功能的脚本引擎接口。 它是 ECMAScript HTTP API。
对象的名称是 XMLHttpRequest
是为了和Web 兼容,虽然此名称的每个组件都可能误导。 首先,该对象支持包括 XML 的任何基于文本格式。 第二,它可用于通过 HTTP 和 HTTPS (有些实现支持 HTTP 和 HTTPS,除了以协议但的功能不受此规范) 发出请求。 最后,它在广义词的支持"请求",它适用于 HTTP ; 即所有活动都涉及的 HTTP 请求或响应的定义的 HTTP 方法。
做某事的数据从通过网络读取 XML 文档的一些简单的代码:
function test(data) {
// taking care of data
}
function handler() {
if(this.readyState == 4 && this.status == 200) {
// so far so good
if(this.responseXML != null && this.responseXML.getElementById('test').firstChild.data)
// success!
test(this.responseXML.getElementById('test').firstChild.data);
else
test(null);
} else if (this.readyState == 4 && this.status != 200) {
// fetched the wrong page or network error...
test(null);
}
}
var client = new XMLHttpRequest();
client.onreadystatechange = handler;
client.open("GET", "test.xml");
client.send();
如果您只想登录到服务器的一条消息:
function log(message) {
var client = new XMLHttpRequest();
client.open("POST", "/log");
client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
client.send(message);
}
或者,如果您想要检查服务器上的文档的状态:
function fetchStatus(address) {
var client = new XMLHttpRequest();
client.onreadystatechange = function() {
// in case of network errors this might not give reliable results
if(this.readyState == 4)
returnStatus(this.status);
}
client.open("HEAD", address);
client.send();
}
2一致性
该规范中的所有内容是规范的关系图、 示例、 备注和标记为不规范的部分除外。
关键词 必须、 不得、 应 要将和本文档中 可能 被解释 RFC 2119 中所述。 [RFC2119]
此规范定义了下列产品:
-
符合标准的用户代理
-
如为了被视为符合本规范中所述的行为举止 必须 的用户代理。
如果用户代理不是一个 符合 XML 用户代理 XML 响应实体正文 (总是) 必须 是空的。
用户代理 可能 实现最终结果是区分会得到规范的算法的结果,只要需要,任何方式在本规范中提供的算法。
该规范使用这两个术语"符合用户代理"和"用户代理"来引用该类产品。
符合标准的 XML 用户代理
-
一个 XML 用户代理 必须 是 符合用户代理,并且 必须 是一致性的 XML 处理器,报告的良好性命名空间冲突。 [XML]
2.1依赖项
该规范依赖几个基础规范。
-
DOM