--- title: XDomainRequest slug: Web/API/XDomainRequest tags: - AJAX - API - IE - JavaScript - Web - 废弃 - 微软 - 非标准 translation_of: Web/API/XDomainRequest ---
{{obsolete_header}}
{{non-standard_header}}
XDomainRequest是在IE8和IE9上的HTTP access control (CORS) 的实现,在IE10中被 包含CORS的XMLHttpRequest 取代了,如果你的开发目标是IE10或IE的后续版本,或想要支待其他的浏览器,你需要使用标准的HTTP access control。
该接口可以发送GET和POST请求
var xdr = new XDomainRequest();
返回XDomainRequest的实例,该实例可以被用来生成或管理请求。
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方法中(见{{domxref("window.setTimeout()")}})。
XDomainRequest为了确保安全构建,采用了多种方法。
Access-Control-Allow-Origin的头部。
该接口及其方法没有遵循标准。
{{ CompatibilityTable() }}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
XDomainRequest | {{ CompatNo() }} | {{ CompatNo() }} | 8.0-9.x | {{ CompatNo() }} | {{ CompatNo() }} |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
XDomainRequest | {{ CompatNo() }} | {{ CompatNo() }} | {{ CompatUnknown() }} | {{ CompatNo() }} | {{ CompatNo() }} |