无法在Chrome或Edge上的iframe中显示Web应用程序

时间:2019-07-17 12:46:02

标签: asp.net cross-browser windows-server

我正在为网站添加一个非常老的Web应用程序。我们必须在网站上的iframe中显示Web应用程序。使用Internet Explorer 11时,Web应用程序将毫无问题地显示在iframe中。请注意,这是一个旧的Web应用程序

另一方面,

Chrome和Edge将在开发人员控制台中显示错误:拒绝在框架中显示“ {APPLICATION_URL}”,因为祖先违反了以下内容安全策略指令:“ frame-ancestor {SERVER_NAME }”。

要注意的一件事是,这不会总是发生在Chrome和Edge中。我会说大约80%的时间我会收到错误,但是20%的时间应用程序会在iframe中正常加载并且没有问题。这使我认为问题可能是特定于我们场中的一组服务器的,但无法证明这一点。

我在这里对我们的服务器的了解非常有限,但是如果需要的话,我可以让别人给我更多的信息。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。需要注意的一件事: Internet Explorer不支持Content-Security-Policy标头。这就是为什么它在IE中100%都有效的原因。 IE无法使用该标头执行任何操作,因此它只是按应有的方式加载了该应用程序。

我能够与一些有权访问Web应用程序托管服务器的人一起工作。我发现问题是由该网站上该应用程序所属的默认站点的IIS设置引起的。

有两个托管应用程序的服务器,负载均衡器将根据流量将您定向到服务器。 一台服务器为服务器上应用程序的所有出站流量添加了内容安全策略的HTTP标头。这就解释了为什么有时应用程序可以正常加载,而有时却失败的原因。