问题标签 [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 回答
4581 浏览

javascript - XDomainRequest open("get", url) 在 IE 中给出拒绝访问错误

我在我的一个 JavaScript 文件中使用以下代码。

但是当我在 IE 中运行脚本时,它给了我以下错误。

SCRIPT5:访问被拒绝。

然后我想检查浏览器类型并为 IE 执行单独的代码,如下所示。

但它再次给了我同样的错误,我使用了以下代码

checkData最后,我想像下面对其他浏览器所做的那样调用函数。

在 IE 控制台上出现 Access Denied 错误时,我错过了什么?

0 投票
1 回答
10511 浏览

javascript - AJAX 跨域请求 IE 8+

如何使用 XDomainRequest 更正重写 Ajax 请求以使其在 IE 8 + 中工作?

0 投票
2 回答
1556 浏览

javascript - 对跨域 URL 的 PUT 请求仅在 IE 中失败

我想在不同的域中执行 PUT 请求。但该脚本仅在 IE 中失败。

我发现问题出在 IE 中,如果您查看 Internet 选项 > 安全选项卡 > 自定义级别 > 杂项 > 跨域访问数据源选项设置为禁用。我能够让我的放置请求工作的唯一方法是将该选项设置为允许。

所以我的问题是:有没有一种方法可以在不强制最终用户设置选项的情况下使其正常工作?

XDomainRequest() 可用于 IE 中的 XDomain 请求,但此方法不支持 PUT。

0 投票
2 回答
2239 浏览

javascript - IE8 和 IE9 上的 XDomainRequest 与 XMLHttpRequest

我对 XMLHttpRequest 和 XDomainRequest 转世感到非常困惑,希望得到一些帮助。所以这是我的发现:

  1. IE8 和 IE9 中的 XDomainRequest 似乎是某种 XMLHttpRequest 子类(?)
  2. XDomainRequest 缺少“withCredentials”
  3. XDomainRequest 缺少强制您使用状态和状态 IF 的“onLoad”事件 - 编辑:这不完全正确。如果您在 IE8 和 IE9 中实例化 XDomainRequest,则 onLoad 可用。但是,如果您在 EI8 或 IE9 中实例化 XMLHttpRequest,则 onLoad 不可用。我们将在下面看到为什么这很重要。
  4. 此外,它以纯文本/文本形式提交数据,而不是强制您在后端解析输入流的形式。
  5. 即使 CORS 服务器“Allow-Headers”指令允许客户端读取 Set-Cookie,XDomainRequest 也不会公开它,从而无法使用 cookie 存储的会话 ID 用于身份验证。
  6. 最后,如果我没记错的话,它只允许 POST 和 GET http 方法使其对 RestFull Web 服务无用。

这份清单绝不是完整的,正如我所说,它是基于我的发现。然而,这就是混乱开始的地方。我有一个应用程序,我必须通过 Ajax:

  • 通过 GET 获取(跨域)加密密钥以及与之关联的会话 ID。
  • 使用此密钥加密我的用户密码(这里没问题)
  • 使用 POST 和 x-www-form-urlencoded 用户名和加密密码登录到跨域(我在步骤 1 中获得了密钥)。

现在由于上述所有原因,我无法使用 XDomainRequest 执行此操作:

  • 首先是因为 XDomainRequest:open(method, url) 只发送纯文本,而我的第三方应用程序正在等待表单(我可以编写一个过滤器/请求拦截器,但这不是重点)。
  • 因为通过 Set-Cookie 标头(步骤 1)与加密密钥一起到达的我的会话 ID 在作为标头登录时永远不会发送回跨域,因为 XDomainRequest 不公开标头。

然而,如果在 IE8 和 IE9 中我实例化一个 XMLHttpRequest 忽略此处描述的所有这些检查,一切正常!!!好的,我没有收到 onload 事件,我不确定“withcredentials”的故事是什么,但 IE8 和 IE9 似乎在跨域使用 XMLHttpRequest 时没有问题。但为什么?这些不都是矛盾的吗?我只是想弄明白这个问题,因为我担心在 IE8 和 IE9 中使用 XMLHttpRequest 可能会在某个时候回来咬人。当有人可以使用一个而不是另一个时,我可以要求一个明确的例子吗?更好的是,是否有任何针对 IE8 和 IE9 的更新解决了这个问题?

任何帮助将不胜感激 Yiannis

0 投票
0 回答
7126 浏览

javascript - 如何在 IE 中删除“内容长度不匹配:请求标头指示 39 个字节,但客户端发送了 0 个字节”这个错误

我正在尝试使用 XDomainRequest 对象调用 azure Web 服务(该服务位于不同的域中)。我在 javascript 中有一个通用方法来处理我发送到此服务的所有请求。该代码适用于除 IE 之外的所有其他浏览器。在 IE 浏览器中,它适用于某些请求,而对于某些请求,它会在 fiddler 中引发以下错误。“内容长度不匹配:请求标头指示 39 个字节,但客户端发送了 0 个字节”。

我使用的是 IE9 浏览器。请告诉我如何解决这个问题?

0 投票
1 回答
399 浏览

c# - 图像在 iframe 内调整大小 在 iframe 内

基本上,我们使用的是 gapphotos.com 提供的服务,我们可以通过 iframe 将图像调用到我们的网站中。然后,此 iFrame 包含另一个保存图像的 iframe。我面临的问题是他们的图像大致有 161x161 或 320x320 两种尺寸。我要做的就是使用 jQuery 进入这两个 iFrame 并更改高度/宽度。

这是我曾经尝试过的 jQuery,但它回来了

我研究了 EasyXDM,但找不到深入 2 个 iFrame 的建议。任何帮助将不胜感激,因为这是一个紧迫的时间表。

图式

0 投票
1 回答
2599 浏览

javascript - 模拟*同步* XDomainRequest (XDR) 请求的任何方式

我们正在对谷歌地图地理编码 API 进行跨域调用。这在现代浏览器中过去和现在都很好,而且在现代浏览器中运行良好,但在 IE8 中根本不起作用。看起来它在 IE9 中也会失败(部分 CORS 支持)。这导致包含一个 XDomainRequest (XDR) 来处理 IE8-9。在我的独立测试中这样做可以很好地在 IE8 中获取数据。

我现在遇到的问题是 XDR 只能异步工作,所以我的地理编码函数在我的 xdr.onload 触发之前返回。

在我的搜索功能中,我调用了地理编码功能:

我在 IE8 中点击了上面的“无法确定位置”警报。

这是我的地理编码功能:

如果我在地理编码函数中注释掉 alert(json),我会在 IE8 中获得结果,因为这是一个阻塞操作,因此请求有时间完成并填充我的 json 对象。当它未注释运行时,不会填充 json 对象。

任何人都知道如何在 IE 中使用它?

0 投票
1 回答
2339 浏览

jquery - IE XdomainRequest CORS 问题

我遇到了 IE 问题(仅 IE8+,Chrome 工作正常),当我尝试将信息发布到我网站上的另一个页面时,我收到一条错误消息,提示“http://localhost:7230在 Access-Control-Allow-Origin 标头中找不到来源” . 我知道这在某种程度上与 CORS 有关,但我不会离开我的领域。

发送请求的页面是:http://localhost:7230/TestPage.aspx

我要发布到的页面http://localhost:7230/ActionHandler.aspx

发布到页面的代码:

这是一个在 Visual Studio 中运行的 ASP.NET 网站。我已按照此处的步骤操作,并将相关行添加到我的 web.config 文件中。任何有关如何将我的请求传递到 ActionHandler 页面的帮助将不胜感激。

0 投票
1 回答
3019 浏览

jquery - Ajax GET 请求在 IE 8 和 9 中不起作用

我已经在阳光下尝试了一切,但无法正常工作。

尝试在 IE 8+9 中获得一个简单的 GET 请求跨域 .. 在 Chrome 和 Firefox 以及 IE10 中运行良好。尝试使用 XDomainRequest 但没有骰子.. 得到未定义的错误。

编辑:我尝试使用 jsonp 但得到一个解析器错误。还尝试了 iecors.js jQuery ajax 自定义传输(https://github.com/dkastner/jquery.ieco ​​rs ).. 仍然没有骰子

0 投票
1 回答
128 浏览

javascript - Xdomain 请求解决方法

我有一个 javascript 文件,它应该作为服务加载到不同的客户端网站上。此文件中有一些 AJAX 发布请求,它们调用我服务器上的后端。它通常在 chrome 和 firefox 中运行良好,但 IE 总是显示“访问被拒绝”。我曾尝试使用“访问控制允许来源'*',但这并不能解决问题。我知道使用 XDomainRequests 有一种可能的解决方案。我想知道是否有任何其他解决方案可以解决这个问题?