javascript - 如何允许特定站点的交叉脚本?

标签 javascript http cross-domain optimizely

我正在尝试使用 Optimizely(允许创建 A/B 测试等的工具的名称)测试我的网站。 此工具尝试将我的页面加载到 iframe 中,但出现 JS 错误:blocked a frame with origin "...optimizely..."from accessing a frame with origin "...my site..."协议(protocol)域和端口必须匹配

我想以某种方式允许优化地访问我的网站并运行 JS - 我应该怎么做?

  1. 我读到我可以添加一个 http-header 来允许此类访问,但我找不到是否可以定义它以允许特定站点(我不想造成安全漏洞)

  2. 我阅读了一些关于 window.postMessage 的内容,但我想我需要更改两边的代码 - 我将无法更改 Optimizely 代码

最佳答案

您可以使用 Cross Origin Resource Sharing允许其他站点通过 AJAX 下载您的内容(我希望它也适用于您的情况)。在这里,您必须使用 header Access-Control-Allow-Origin 以及您的网站想要提供访问权限的所有域的列表。示例:

Access-Control-Allow-Origin: http://www.example-social-network.com

有关 CORS 的更多信息,您可以在维基百科文章中找到:https://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing

关于javascript - 如何允许特定站点的交叉脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919467/

相关文章:

windows - 为什么无法使用任何端口连接到 127.0.0.1 上的 http 服务绑定(bind)

javascript - jquery - 从本地文件系统加载 XML 文件而不会出现跨域错误

javascript - 为什么HTML SCRIPT标签不受同源策略约束

javascript - 在 Object.create : properties are there, 之后但 Object.keys/getOwnPropertyNames = []?

javascript - 如何使用 JQuery 隐藏 data-status = 'Processing' 的按钮

javascript - Google.com 和 clients1.google.com/generate_204

cookies - 使用 NextAuth 跨多个域 (CORS) 进行身份验证

javascript - 如何更改单选按钮的范围文本

javascript - 在 Rails 中使用 content_for 包含内联 JavaScript

java - 使用 JAX-RS 处理异步 http 请求?