问题标签 [xdomainrequest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
62614 浏览

jquery - IE8/9 中带有 jQ​​uery 和 XDomainRequest 的 CORS

更新:我强烈建议不要在 XDomainRequest 上投入任何时间,因为它是一个非常糟糕的实现,有很多限制。它基本上只适用于对非 SSL 服务器的 GET 请求,所以你不妨使用 jsonp 或其他什么。


我正在使用 CORS 调用跨域 API,但是 Internet Explorer 出现问题。通过对象在 IE8 和 IE9 中应该可以使用 CORS XDomainRequest,但是我无法让事情正常工作..

JQuery拒绝为 XDomainRequest 提供本机支持,但是建议使用几个 jQuery 插件来添加此支持。本主题建议使用两个这样的插件:jQuery.XDomainRequest.jsxdr.js,据报道它们可以工作。Afaik,插件应该自动覆盖jQuery.ajax. 我在这里找到了另一个插件。

我放了一些演示页面,其中包含对启用 CORS 的服务器执行 ajax 请求的相应插件jQuery.XDomainRequestxdrjquery.ie.cors 。这些页面在 Chrome 和 Firefox 中运行,但是 IE8/9 立即抛出权限被拒绝错误(甚至在发出请求之前)。这个MSDN 帖子建议添加另一个处理程序xhr.onprogress = function() {};,但我尝试了这个,它也不起作用。

任何线索我做错了什么?我现在也使用 MS 虚拟服务器对 IE8 进行了测试,但它有完全相同的问题。

编辑:好的,所以我发现问题的一部分是我使用 POST over HTTPS。显然 XDomainRequest 不允许通过 HTTPS 进行 CORS。我可以切换到 HTTP,但我真的需要 POST。

Edit2:请参阅github上的此问题以了解此故事的结尾。事实证明,当使用 HTTP POST 时,xDomainRequest 只能将请求正文(参数)编码为text/plain. 这几乎使它一文不值,因为每个人都使用application/x-www-form-urlencodedor multipart/form-data

0 投票
1 回答
903 浏览

post - XDomainRequest 在发送 POST 请求时没有内容类型

我正在处理一些跨域 ajax 请求。我使用 XDomainRequest 在 IE8 和 IE9 中发送请求。目前,它适用于 Get 请求,但不适用于 Post 请求。当我使用 Fiddle 捕获请求时,我发现 Post 请求没有 Content-Type 标头。有人知道吗?

0 投票
1 回答
1579 浏览

javascript - jQuery $.ajax 扩展 XDomainRequest onprogress

简短版本:

我想让这个和这个一起工作:

长版:

我想创建一个 jQuery 扩展,为 $.ajax 对象添加一个进度方法,并与 IE8 和 IE9 的 XDomainRequest 对象一起使用。

目前,使用上述插件,我只能为 XMLHttpRequest 对象定义进度事件回调处理程序。

但是,XDomainRequest 也提供了一个 onprogress 事件。我基本上需要 XDomainRequest 的包装器。例如。progressEvent.length 将对应于 xdr.responseText.length。

我很感激任何关于从哪里开始的建议。

0 投票
0 回答
714 浏览

javascript - 新的 html 脚本标签与 XMLHttpRequest / XDomainRequest

我试图解决 IE6 中对 XDomainRequest 缺乏支持的问题。我想我有一个解决方案,但想知道对这种方法的看法是什么?...

我只需要执行GET请求,因此我无需尝试创建 XDR 对象,而是script在需要时动态地将新标签附加到页面(onclick)。标签的src将包含查询字符串中的所有必要参数。然后我可以从服务器返回内容。

聪明/丑陋的一点是将内容包装在一个 javascript 函数中,否则该函数本来是onloadXDR 实例的函数。所以我实际上要返回的是一些脚本,其中包含一个函数,其中已经有 xdr.responseText 值。

想法?

0 投票
1 回答
1586 浏览

ajax - 跨域在 ie9 中将数据从 http 服务器发送到 https 服务器

我有用户输入的数据发布到不同的域和不同的协议。在做了一些阅读之后,我发现微软的XDomainRequest对象不允许跨域交互(不同的协议,端口,#7 here .

我正在为 FF、Safari 和 Chrome(有效)进行标准 CORS AJAX 调用,并且我一直在尝试将 XDomainRequest 对象用于 IE9。

当我打开一个https版本的源站时,它成功地将数据发送到接收url,但它无法解析任何数据。xdr.send(post_data);“看起来”就像在发送它时,我无法找到相关信息或在控制台中看到它。我看着这个,但不太明白;控制台回应:Unable to get value of the property 'postMessage': object is null or undefined

谁能给我一些帮助?

0 投票
1 回答
1288 浏览

javascript - XDomainRequest 在状态为 200 时未给出响应

XDomainRequest 在状态为 200 时未给出响应

它给出的响应文本为空。请指导我在哪里失踪。

0 投票
1 回答
3001 浏览

get - XDomainRequest 在 IE9 中不起作用

我正在尝试加载不在 Web 应用程序文件夹中但通过 GET 请求升级的 XML 文档。loadXMLDoc 适用于 FF 和 chrome,但 XDR 不适用于 IE。

我正在调用这样的方法:

我被引导相信问题在于根目录中的上一级,因为它适用于同一目录文件夹

我已经尝试在 web.config 文件中添加 Access-Control-Allow-Origin

但仍然会收到 onError 的警报消息,其中 responseText 为空...

有什么线索吗?

0 投票
2 回答
939 浏览

internet-explorer - IE跨域ajax调用XDomainRequest报错

我必须使用以下代码从 iframe 中的页面注销

但是,我在 IE8 中按以下顺序获取更改框:“发送前”、“XDR onerror”、“发送后”。

我在服务器端有以下代码

在我使用 $.getJSON 和 response.setHeader("Access-Control-Allow-Origin", "*") 等之后,我可以验证注销是否适用于 Firefox;但是,当我使用 IE 时它不会注销。

然后我在网上找到了这条评论:

所以我添加了 XDomainRequest。但是,我在 IE8 中收到了警告对话框“XDR onerror”。我应该添加什么才能在 IE 中进行跨域调用?

0 投票
2 回答
3633 浏览

php - IE 8+ XDomainRequest 'post' 不工作

我正在使用 jQuery.XDomainRequest.js (https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest) 来支持 IE 中的 ajax 请求。

它适用于我的 GET 请求,但 POST 不起作用,它返回 500。(我检查过,它适用于其他浏览器,所以它的 XDR 特定问题)。

我的 ajax 调用如下所示:

这是我第一次遇到 XDomainRequest,我自己做了一些研究,但我不知道为什么会失败。

在此先感谢您的帮助!!!

编辑:我做了一些调试。

我的测试 url = "http:/myserver/test/index.php?key=123" (这是一个跨域请求)

我打印了 json_encode($_GET),我得到:{"key":"123"} 我打印了 json_encodee($_POST),我得到:[]。

显然我的帖子数据没有被发送。

这是发送我的数据的行:

postData 看起来像:

我在 php 代码中的标题如下所示:

0 投票
1 回答
1832 浏览

javascript - 使用 jquery 跨域 ajax POST ie7

这个脚本有问题,我设法让它在 ie8 中工作,在 chrome 上工作得很好。

我知道 ie7 没有 XDomainRequest() 对象。我如何在 ie7 中复制它。

提前致谢