问题标签 [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.
javascript - 使用 XDomainRequest 测试 javascript
处理将数据推送到跨域服务器的 javascript 模块。我在 qunit 中有一个测试套件来验证行为,使用 sinon 拦截请求并伪造来自 XmlHttpRequest 的响应。这很好用,除了 IE8/9 使用 XDomainRequest 来允许 CORS 调用(功能有些受限)。
我的问题是 sinon 允许模拟我对 XmlHttpRequest 的使用,而不是 XDomainRequest。谷歌搜索后,我找不到任何人嘲笑 XDomainRequest。有没有人有围绕 XDomainRequest 进行测试的实际经验以及可以做些什么?
javascript - 在函数“load”之外使用 XDomainRequest 的响应
我正在以这种方式使用 XDomainRequest 对 IE 进行跨域请求:
代码返回正确的值,但我想在其他函数中使用Ajax返回的值(不仅在xdr.onload的函数内部),所以我需要xdr.responseText返回的内容可以声明为全局或类似的东西。
示例:最后一行 $j('#result').html(urlToOpen) 假装分配了“urlToOpen”的值,但这不起作用。我怎样才能做到这一点?
xdomainrequest - IE 中的 XDomainRequest 给出访问被拒绝错误
这是我使用的代码如下:
我正在使用 IE9,无法在“网络”选项卡中看到正在发送的请求。我确实在 JSP 中设置了 Access-Control 标头:
从 JSP 获取 AJAX HTML 内容的代码:
我收到拒绝访问错误。任何帮助将非常感激!
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 的函数的一部分):
javascript - 如何获取 XDomainRequest 对象中的错误信息?
我看到调用了我的错误处理方法,但由于没有参数,我不知道如何检查它是哪种错误。
在上面的例子e
中是undefined。
javascript - XDR ajax 获取 IECors 的请求
我正在使用类似于下面的代码(一个非常简化的版本)执行跨域获取请求。
现在,由于 IE 不支持 CORS,我需要使用XDomainRequest
iecors 插件,该插件效果很好,因为当 IE 出现故障时,XHttpRequest
它会切换到XDR
.
但是,我遇到的问题是,$('body').html(data);
这似乎仅在我在控制台中实时执行时才在 IE 中起作用,而不是在第一次调用它时才起作用$(document).ready
?(这适用于所有其他浏览器,因为它们支持 XHR)
我认为这是时间问题,所以我不确定如何解决这个问题,我是否使用 asetTimeout()
并为 IE 浏览器运行两次?请问有人可以提供一些建议吗?提前谢谢了。
编辑
我通过使用 setTimeout 执行它找到了一种解决方法,但仍然觉得这不是最好的解决方案,例如
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
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
提供非标准对象。XDomainRequest
但XDomainRequest
没有实现设置 HTTP 标头字段的方法。
XDomainRequest
所以我的问题是:如何在不使用or的情况下使用自定义标头进行跨域请求XMLHttpRequest
?最佳实践解决方法是什么?
编辑:我可以控制所有涉及的服务器 (*.example.com)。
server-push - 有没有办法在 IE8 中清除 XDomainRequest.responseText
我正在实施服务器推送解决方案。
有没有办法清除IE8 的XDomainRequest.responseText,因为它充满了每个响应块?
(为了获得与 Firefox xhr.responseText 中相同的效果,其中 multipart 仅包含最后一个响应部分。)
javascript - 如何设置 XDomainRequest 对象的内容类型?
对于 XMLHttpRequest 这很简单:
但是我如何为 XDomainRequest 实现这一点?