gpt4 book ai didi

javascript - 如何正确设置跨域脚本执行?

转载 作者:行者123 更新时间:2023-12-01 03:54:49 24 4
gpt4 key购买 nike

我们使用第三方报告应用程序服务器。我们的应用程序(我们将称之为站点 A)包含一个由报告服务器提供的脚本,该脚本具有嵌入报告的方法。调用该方法时,它会创建一个 iFrame,从报告服务器(我们将此称为站点 B)加载请求的报告、脚本和样式。

报告页面按预期加载,嵌入其 iFrame 中。报告中的交互按预期进行。但是,报告页面(来自站点 B)随后将 postMessage() 发送到父级(站点 A)以调用方法来调整保存 iFrame 的容器元素的大小,并将另一个 postMessage() 发送到父级(站点 A)以进行滚动到同一容器元素的顶部。

vendor 告诉我们,我们需要实现正确的 CORS 设置才能使其正常工作,除了“其他客户端正在使用这种方法”之外,没有提供任何进一步的解释。目前它在控制台中抛出一个错误,指出:

Uncaught DOMException: Blocked a frame with origin "[Site B]" from accessing a cross-origin frame.

在过去的两天里,我在 MDN 和其他网站上阅读了大量文档,但我仍然对哪些设置应用于哪个服务器感到困惑?我在这里和那里看到了几个关于设置 header 的示例,但是我读到的几乎所有内容都仅适用于从客户端(由站点 A 提供服务)到远程(站点 B)发出 Ajax 请求,而没有任何关于必要内容的内容对于我们正在处理的场景。有人可以在这里阐明一些情况吗?哪个服务器需要哪些 header ?

非常感谢任何帮助。

最佳答案

CORS 在这里无关紧要。

该错误消息表明站点 B 正在尝试访问站点 A 上被禁止的内容。这意味着站点 B应该使用 postMessage,但实际上没有(或者至少没有正确)。

关于javascript - 如何正确设置跨域脚本执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42858030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com