即使在Express应用程序中设置了响应标头后,CSP问题仍然存在

问题描述

在我的app.js中,我按如下所示设置res标头

app.use((req,res,next) => {
  res.setHeader(
    'Content-Security-Policy',"script-src 'self' 'https://connect.facebook.net' 'https://*.facebook.net' 'unsafe-inline' ","script-src-elem 'self' 'https://*.facebook.net' 'unsafe-inline'","style-src 'self' 'https://cdnjs.cloudflare.com' 'http://localhost:8000'"
  );
  next();
});

,我在chrome开发工具中看到以下错误,并且fb Page插件未按预期显示。但是,当我尝试使用简单的HTML页面进行操作时,fb Page插件确实按需要显示。 这是开发工具的屏幕截图 ScreenShot of the chrome dev tool

在我的Jade模板中,我也没有任何重要的Meta标签,这里是所用Meta的完整列表

doctype html
head
    Meta(charset='UTF-8')
    Meta(name='viewport' content='width=device-width,initial-scale=1.0')
    Meta(http-equiv='X-UA-Compatible' content='ie=edge')

我想念什么或在做错事。

解决方法

因此,您可以看到注释,上述问题的解决方案是“在将代码保存到VSCode后再次检查您的代码,标题应如下所示

app.use((req,res,next) => {
  res.setHeader(
    'Content-Security-Policy',"script-src 'self' https://connect.facebook.net; https://*.facebook.net; ","style-src 'self' https://cdnjs.cloudflare.com; http://localhost:8000; "
  );
  next();
});