问题描述
我正在使用定制板上的Node JS开发Web应用程序。我使用EJS模板引擎和JQuery。我的应用程序曾经可以运行,但是没有,在固件更新后,我在浏览器控制台Content Security Policy: Couldn’t process unkNown directive ‘script-src-attr’
和其他Loading Failed for the <script> with source “https://192.168.1.1:8080/jquery.min.js”.
上收到此警告
同样在固件更新之前,我会像这样设置CORS策略:
//Enable CORS for all HTTP methods
app.use(function(req,res,next) {
res.header("Access-Control-Allow-Origin","*");
res.header("Access-Control-Allow-Methods","GET,PUT,POST,DELETE,OPTIONS");
res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept");
next();
});
这是我的工作目录:
-index.js
-API
- Routers
- Models
- Controllers
-Views
-Component
-Static
- JS
- CSS
我不会使用'cors'npm模块(如果没有必要)。 我尝试更改/ static路径,并尝试更改'res.header(“ Access-Control-Allow-Origin”,“ *”',但我认为这是相当宽松的。任何人都可以帮助我吗?谢谢
解决方法
这不是CORS问题,而是内容安全政策。更新固件后,您在某个地方发布了CSP标头,请尝试查找:
res.header("Content-Security-Policy","... script-src-attr ...");
并删除“ -attr”部分。 Firefox不支持 script-src-attr 指令,它仅支持 script-src 一个。
如果您不需要使用Content-Security-Policy,只需删除此标头即可,因为配置错误的CSP会阻止脚本,样式,字体,图像等。
可能是您的Web服务器发布此标头。检入浏览器开发工具,从服务器获取哪些HTTP标头。