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!
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
XDomainRequest未实现未实现8.0-9.x未实现未实现
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
XDomainRequest未实现未实现?未实现未实现

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:52 次

字数:6996

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文