【问题标题】:How do CORS requests work from within an iframe?CORS 请求如何在 iframe 中工作?
【发布时间】:2017-04-28 01:59:08
【问题描述】:

使用 javascript,我们可以使用 XMLHttpRequest 进行跨域请求。

跨域请求要求被请求的主机只对预先批准的主机作出响应。

当从 iframe 中发出 XHR 请求时(来自主机 A 的内容向站点 C 发出请求,但被加载到站点 B 上的 iframe 中)。站点 C 上必须允许哪些主机/来源才能通过请求?

【问题讨论】:

  • 它应该仍然是 A。它对你来说不是出于某种原因吗?
  • 这是有道理的。我在想一个页面只能使用一个来源。但我猜 iframe 会保留原点,所以当您加载 iframe 时,该 iframe 可以根据加载它的原点发出请求?
  • @WiktorZychla 我还没有尝试过,我想在尝试每种组合之前了解一些背景知识,希望其中一种能奏效。

标签: javascript cors


【解决方案1】:

在你的问题中并不完全清楚你在做什么,但规则相当简单:请求的来源基于代码运行的窗口。所以如果该代码在 iframe 的窗口中运行,原点是 iframe 的原点,而不是包含 iframe 的页面的原点。

如果你有:

+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− | [B] 来自 http://example1.com 的页面 | | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− |内容 | | ... | | ... | | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ | | | [A] http://example2.com | | | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ | | |内容 | | | | ... | | | | ... | | | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

...发出请求的代码在 iframe (A) 中,请求的来源是 http://example2.com

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 2019-11-29
    • 2011-08-30
    • 2015-09-16
    • 2014-10-30
    • 2017-11-01
    • 2023-03-04
    • 2017-11-04
    • 2013-03-25
    相关资源
    最近更新 更多