所有Iframe内容和CDN不再工作



我的节点应用程序似乎阻止了所有CDN和iframe内容,例如,我的表没有加载dataTables的内容(如排序和搜索(,我的图也不起作用。它们以前都在工作,我最后修改的是包更新和节点更新,似乎和问题无关。我想知道可能发生的事情以及如何解决。

如果这个问题不那么客观,我很抱歉,但我真的不知道从哪里开始。

问题

记录并帮助其他可能遇到同样问题的人。根据CBroe的评论,我发现问题是我没有设置内容安全策略(CSP(,浏览器设置了自己的策略,阻止了外部资源(CDN和Iframe内容(。浏览器控制台中显示了提及内容安全策略的错误消息。

解决方案

为了解决这个问题,我在server.js上添加了一个中间件来设置一个不会阻止我的外部内容的CSP。

一个非常宽松的CSP中间件的例子(我建议你使用一个更严格的(:

app.use(function(req, res, next) {
res.setHeader(
"Content-Security-Policy",
"default-src * 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * 'unsafe-inline';"
);
return next();
});

最新更新