在iis上启用cors - 由x-frame-options拒绝加载:不允许跨源框架

时间:2017-07-26 06:50:16

标签: iis iframe cors x-frame-options

有几个问题,但我还没有得到正确的答案。我简要总结一下:

公司A的网站中包含iframe。公司B提供该iframe的URL。用户使用来自B公司的应用程序,并根据用户选择的设置设置一个URL,该URL将从A公司传送到iframe。

但是,由于x-frame-options,框架还没有工作。错误消息如下:

  

X-Frame-Options拒绝加载:   http://www.myurl.com:8088/myPath?panel=panel&user=username   不允许跨源框架。

我添加了

rows.Scan(...)

到我的web.config并尝试添加

<httpProtocol>
    <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
</httpProtocol>

没有任何成功。

我从thisthis网站获得了建议,以便在我的IIS上添加CORS支持。正如我上面提到的,没有任何成功。我在网络开发或IIS方面不是那么好,所以这个问题可能听起来很愚蠢:A公司是否必须启用CORS或B公司?或两者?如何?我从谷歌那里得到的建议还没有帮助。

建议表示赞赏。

2 个答案:

答案 0 :(得分:0)

该错误消息与Access-Control-Allow-Origin标头和OPTIONS处理无关,因此预计问题中描述的更改不会产生任何影响。

原因是,http://www.myurl.com:8088服务器在对X-Frame-Options的请求的响应中发送/myPath响应标头。因此,如果您不希望服务器执行此操作,则需要确定服务器代码的哪个部分导致添加X-Frame-Options响应标头,并删除该代码。

答案 1 :(得分:0)

x-frame-options已被Content-Security-Policy取代,您可以按如下方式使用它:

<system.webServer>
<httpProtocol>
  <customHeaders>
    <add name="Content-Security-Policy" value="frame-ancestors 'self' example.com *.example.net ;" />
    <add name="X-Content-Security-Policy" value="frame-ancestors 'self' example.com *.example.net ;" />
  </customHeaders>
</httpProtocol>