问题标签 [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 投票
1 回答
278 浏览

javascript - 使用 XDomainRequest 测试 javascript

处理将数据推送到跨域服务器的 javascript 模块。我在 qunit 中有一个测试套件来验证行为,使用 sinon 拦截请求并伪造来自 XmlHttpRequest 的响应。这很好用,除了 IE8/9 使用 XDomainRequest 来允许 CORS 调用(功能有些受限)。

我的问题是 sinon 允许模拟我对 XmlHttpRequest 的使用,而不是 XDomainRequest。谷歌搜索后,我找不到任何人嘲笑 XDomainRequest。有没有人有围绕 XDomainRequest 进行测试的实际经验以及可以做些什么?

0 投票
2 回答
563 浏览

javascript - 在函数“load”之外使用 XDomainRequest 的响应

我正在以这种方式使用 XDomainRequest 对 IE 进行跨域请求:

代码返回正确的值,但我想在其他函数中使用Ajax返回的值(不仅在xdr.onload的函数内部),所以我需要xdr.responseText返回的内容可以声明为全局或类似的东西。

示例:最后一行 $j('#result').html(urlToOpen) 假装分配了“urlToOpen”的值,但这不起作用。我怎样才能做到这一点?

0 投票
2 回答
3362 浏览

xdomainrequest - IE 中的 XDomainRequest 给出访问被拒绝错误

这是我使用的代码如下:

我正在使用 IE9,无法在“网络”选项卡中看到正在发送的请求。我确实在 JSP 中设置了 Access-Control 标头:

从 JSP 获取 AJAX HTML 内容的代码:

我收到拒绝访问错误。任何帮助将非常感激!

0 投票
3 回答
2463 浏览

jquery - XDomainRequest json POST 正文未在 ASP.NET Web API 调用上反序列化

作为实现跨浏览器、跨域支持 MVC4 Web 应用程序对 MVC4 Web api 应用程序进行 ajax 调用的解决方案的一部分,我使用XDomainRequest对象来为 IE 进行的跨域 ajax 调用提供支持 < 10个客户。

我在使用请求正文中包含 JSON 的 POST 操作时遇到问题,我希望在 Web api 端反序列化。

当使用 XDomainRequest 从 IE < 10 进行调用时,我无法明确指定application/json请求的内容类型(因为使用 XDomainRequest 时无法修改标头),因此 JSON 不会反序列化为方法签名中指定的类型。

请注意,跨域 GET 操作在所有浏览器中都可以正常工作,因此我为 CORS 等正确配置了我的 web api。

考虑在 web api 上定义的以下 POST 操作:

即使在Customer请求正文中存在表示为 JSON 的对象时,customer总是null在使用 IE < 10 的 XDomainRequest 进行调用时。发生这种情况是因为 XDomainRequest 生成的请求缺少content-type: application/json请求标头。

有没有办法在 web api 端处理这个问题,以便即使请求中未指定内容类型,我也可以强制 JSON 正文正确反序列化?

我已经阅读了有关模型绑定器的信息,但不清楚这是否是它们的用途。

这是我的 XDomainRequest 代码供参考(仅供参考,这是对除 IE < 10 之外的所有浏览器使用 jQuery.ajax 的函数的一部分):

0 投票
1 回答
4555 浏览

javascript - 如何获取 XDomainRequest 对象中的错误信息?

我看到调用了我的错误处理方法,由于没有参数,我不知道如何检查它是哪种错误。

在上面的例子e中是undefined

0 投票
1 回答
220 浏览

javascript - XDR ajax 获取 IECors 的请求

我正在使用类似于下面的代码(一个非常简化的版本)执行跨域获取请求。

现在,由于 IE 不支持 CORS,我需要使用XDomainRequestiecors 插件,该插件效果很好,因为当 IE 出现故障时,XHttpRequest它会切换到XDR.

但是,我遇到的问题是,$('body').html(data);这似乎仅在我在控制台中实时执行时才在 IE 中起作用,而不是在第一次调用它时才起作用$(document).ready(这适用于所有其他浏览器,因为它们支持 XHR)

我认为这是时间问题,所以我不确定如何解决这个问题,我是否使用 asetTimeout()并为 IE 浏览器运行两次?请问有人可以提供一些建议吗?提前谢谢了。

编辑

我通过使用 setTimeout 执行它找到了一种解决方法,但仍然觉得这不是最好的解决方案,例如

0 投票
2 回答
1288 浏览

jquery - XDomain.js jquery ajax 在 IE 中调用跨域

我正在使用来自 https://gist.github.com/1114981的 Xdomain.js 文件

这是我从跨域检索 xml 的 jquery ajax 调用,

当我用谷歌搜索时,我得到了一个解决方案,即 IE 中的 XDomainRequest 对象,但是我如何从这个 jquery 插件https://gist.github.com/1114981进行 ajax 调用以使跨域调用工作..

而且,我还从 github https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest导入了这个插件,但是当 IE 似乎抛出错误说 ajaxTransport 方法不支持并且我目前正在使用 jquery 1.3 .2

0 投票
1 回答
580 浏览

javascript - 如何在不使用 XDomainRequest 或 XMLHttpRequest 的情况下使用自定义标头发出跨域请求?

我有一个从www.example.com. 这个网络应用

  • 需要对另一个名为的服务器发出 AJAX 请求api.example.com
  • 它必须设置某些标头字段,例如Authorization发送请求时api.example.com
  • 它必须与最新的和不太新的浏览器兼容(例如 IE >= 8)

所有这一切都是通过使用 Chrome(和其他最近基于 WebKit 的浏览器)处理 api.example.com 上的 CORS 请求来实现的XMLHttpRequest早于版本 10 的 IE不为跨域请求实现 CORS ,而是为跨域请求XMLHttpRequest提供非标准对象。XDomainRequestXDomainRequest没有实现设置 HTTP 标头字段的方法。

XDomainRequest所以我的问题是:如何在不使用or的情况下使用自定义标头进行跨域请求XMLHttpRequest?最佳实践解决方法是什么?

编辑:我可以控制所有涉及的服务器 (*.example.com)。

0 投票
1 回答
155 浏览

server-push - 有没有办法在 IE8 中清除 XDomainRequest.responseText

我正在实施服务器推送解决方案。

有没有办法清除IE8 的XDomainRequest.responseText,因为它充满了每个响应块?

(为了获得与 Firefox xhr.responseText 中相同的效果,其中 multipart 仅包含最后一个响应部分。)

0 投票
1 回答
4482 浏览

javascript - 如何设置 XDomainRequest 对象的内容类型?

对于 XMLHttpRequest 这很简单:

但是我如何为 XDomainRequest 实现这一点?