为何HTML meta标签配置的Content Security Policy未生效?
问题原因及解决办法
1. meta标签存在语法错误
你提供的CSP meta标签末尾多了一个多余的>,导致标签结构无效:
<meta http-equiv="Content-Security-Policy" content="frame-src http://localhost:35637/" /> >
浏览器无法正确解析这个错误标签,自然不会应用你配置的frame-src规则。
2. 服务器可能发送了优先级更高的CSP HTTP头
开发者工具提示的frame-src 'self',大概率是服务器通过HTTP响应头发送的CSP规则。HTTP头形式的CSP优先级高于meta标签中的配置,即使meta标签修复后,如果服务器端仍有这个头,浏览器会优先遵循服务器的规则。
修复步骤
- 修正meta标签语法,删除多余的
>,正确代码如下:<meta http-equiv="Content-Security-Policy" content="frame-src http://localhost:35637/"> - 检查服务器响应头:在浏览器开发者工具的「Network」面板中,找到当前页面的请求,查看「Response Headers」里是否存在
Content-Security-Policy项。如果有,需要修改服务器端的CSP配置,添加允许的frame-src地址;若不需要服务器端CSP,直接移除对应配置即可。
内容的提问来源于stack exchange,提问作者Aastha
相关产品推荐
相关产品推荐

