如何允许特定站点的跨脚本?

时间:2014-04-07 17:44:26

标签: javascript http cross-domain optimizely

我试图用Optimizely(一个允许创建A / B测试的工具名称等)来测试我的网站。 此工具尝试在iframe中加载我的页面,我收到JS错误:blocked a frame with origin "...optimizely..." from accessing a frame with origin "...my site..." protocols domains and ports must match

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

  1. 我看过我可以添加一个http-header来允许这样的访问,但我无法找到是否可以定义它以允许特定网站(我不想创建一个安全漏洞)

  2. 我读了一些关于window.postMessage的内容,但我想我需要更改双方的代码 - 而且我无法更改Optimizely代码

1 个答案:

答案 0 :(得分:1)

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

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

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