我想在我的网页中嵌入一个YouTube视频,但在控制台中看到了以下错误:
Refused to frame 'https://www.youtube.com/embed/<~videoId~>?showinfo=0'
because it violates the following Content Security Policy directive:
"default-src 'self'". Note that 'frame-src' was not explicitly set, so
'default-src' is used as a fallback.
这个问题似乎很清晰,经过一些阅读后,我发现有两种设置适当内容安全策略的方法。
by setting a response header (which I did in my web.config file):
<httpProtocol> <customHeaders> <add name="Content-Security-Policy" value="frame-src https://www.youtube.com/" /> </customHeaders> </httpProtocol>
with a meta tag in the page header:
<meta http-equiv="Content-Security-Policy" content="frame-src https://www.youtube.com">
这两种方法都没有起作用;Chrome在控制台中始终给出相同的结果(即使我已经按照消息所说的设置了请求的内容安全策略)。iFrame仍然被阻止且为空。
有很多关于内容安全策略的问题和答案,但我找不到符合这种情况的任何问题和答案。
我的网站在https上运行,我的iFrame和嵌入式视频看起来像这样:
<div id="videoContainer">
<iframe src="https://www.youtube.com/embed/<~videoId~>?showinfo=0"
frameborder="0"
allowfullscreen>
</iframe>
</div>
这个问题只在Chrome和Firefox浏览器中出现;使用Internet Explorer 11不需要内容安全策略。
提前感谢您的任何建议。