XDomainRequest - Web API 接口参考 编辑
已废弃
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.
非标准
该特性是非标准的,请尽量不要在生产环境中使用它!
摘要
XDomainRequest是在IE8和IE9上的HTTP access control (CORS) 的实现,在IE10中被 包含CORS的XMLHttpRequest 取代了,如果你的开发目标是IE10或IE的后续版本,或想要支待其他的浏览器,你需要使用标准的HTTP access control。
该接口可以发送GET和POST请求
语法
var xdr = new XDomainRequest();
返回XDomainRequest的实例,该实例可以被用来生成或管理请求。
属性
XDomainRequest.timeout
- 获取或设置请求的过期时间。
XDomainRequest.responseText
- 以字符串形式获取响应体。
方法
XDomainRequest.open()
- 根据指定的方法(GET或POST)和URL,打开请求。
XDomainRequest.send()
- 发送请求。POST的数据会在该方法中被指定。
XDomainRequest.abort()
- 中止请求。
事件处理程序
XDomainRequest.onprogress
- 当请求中发送方法和onload事件中有进展时的处理程序。
XDomainRequest.ontimeout
- 当请求超时时的事件处理程序。
XDomainRequest.onerror
- 当请求发生错误时的处理程序。
XDomainRequest.onload
- 当服务器端的响应被完整接收时的处理程序。
例子
if(window.XDomainRequest){
var xdr = new XDomainRequest();
xdr.open("get", "http://example.com/api/method");
xdr.onprogress = function () {
//Progress
};
xdr.ontimeout = function () {
//Timeout
};
xdr.onerror = function () {
//Error Occured
};
xdr.onload = function() {
//success(xdr.responseText);
}
setTimeout(function () {
xdr.send();
}, 0);
}
注意: 如果多个XDomainRequests同时被发送,一些请求可能会丢失,为避免这种情况,xdr.send()的调用应被包裹在setTimeout方法中(见window.setTimeout()
)。
安全
XDomainRequest为了确保安全构建,采用了多种方法。
- 安全协议源必须匹配请求的URL。(http到http,https到https)。如果不匹配,请求会报“拒绝访问”的错误。
- 被请求的URL的服务器必须带有 设置为(“*”)或包含了请求方的
Access-Control-Allow-Origin的头部。
标准
该接口及其方法没有遵循标准。
浏览器兼容性
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
XDomainRequest | 未实现 | 未实现 | 8.0-9.x | 未实现 | 未实现 |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
XDomainRequest | 未实现 | 未实现 | ? | 未实现 | 未实现 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论