我正在尝试使用 Optimizely(允许创建 A/B 测试等的工具的名称)测试我的网站。
此工具尝试将我的页面加载到 iframe 中,但出现 JS 错误:blocked a frame with origin "...optimizely..."from accessing a frame with origin "...my site..."协议(protocol)域和端口必须匹配
。
我想以某种方式允许优化地访问我的网站并运行 JS - 我应该怎么做?
我读到我可以添加一个 http-header 来允许此类访问,但我找不到是否可以定义它以允许特定站点(我不想造成安全漏洞)
我阅读了一些关于
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/