IFRAME中的AJAX不能用于同一服务器

nks*_*tan 5 ajax iframe cors

我正在使用一个网站,abc.com即托管iframe一个页面123.com.
其中的页面iframe正在对另一个页面执行AJAX请求123.com,但我们看到请求被取消.

除非我错了 - 我在互联网上没有找到任何关于此的官方信息 - 这个电话应该可以正常工作,因为它不是跨域请求.

父框架是否在不同的域上这一事实是否真的阻碍了iframe对其自己的服务器执行AJAX请求?

wil*_*mbq 3

IFRAME 应该能够向其自己的原始站点(相同的源 URL)发出 ajax 请求。但是,请确保 REQUEST 事件是从 IFRAME 而不是父级触发的。

我的第一个猜测是您正在加载 IFRAME,然后通过父级 (JS) 对其进行寻址(触发事件),以使其执行/获取/设置触发 ajax 调用的操作。简而言之,这是 IFRAME 域到同一域的请求被取消的最可能原因,因为浏览器仍然将其识别为源自目标域代码之外。

REQUEST 事件需要通过用户单击 IFRAME 中的某些内容或通过 IFRAME 本身触发事件的代码来有机生成。

换句话说:仅仅因为 IFRAME 可能具有在其 JS/代码中向其自身触发事件/ajax 的能力,所以通常仍然不允许直接通过 JS/代码拥有 ajax/JS 的父引用。IFRAME 必须已经根据其加载参数(可能是 URL 值)进行编码才能执行此操作,或者用户必须物理单击/对某些内容执行操作才能在该域上创建用户生成的事件。

当然,这会因浏览器和版本的不同而有所不同,具体取决于您可以在父级与 iframe 之间的交互性方面进行诱导。但严格的、最新的浏览器会尽力阻止您通过 js 在 iF​​rame 上伪造不安全的交互。

为了获得更好的答案,您需要提供有关您正在做什么/正在做什么的更多详细信息。