内容安全策略不适用于 Ionic 服务

Cod*_*der 3 javascript cordova ionic-framework

在我的index.html我有一个元标记:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
Run Code Online (Sandbox Code Playgroud)

当我运行ionic serve(Ionic 版本为 1.6.1)时,出现以下错误:

拒绝加载脚本“ http://localhost:35729/livereload.js?snipver=1 ”,因为它违反了以下内容安全策略指令:“script-src 'self' 'unsafe-inline' 'unsafe-eval' http //本地主机:8100

有谁知道如何解决这个问题?

Roh*_*416 5

我注意到,您已设置script-srcself这意味着脚本将仅从具有相同来源(主机名)的域加载。

当您在 Web 服务器上运行它时,您的端口号会发生变化,因为它会随机选择端口来运行应用程序。我对服务器没有任何了解Ionic,但对于CSP,我可以得出这样的结论。

在您的情况下,localhost:35729localhost:8100显然不一样,因此策略标头会阻止脚本的加载。

要解决此问题,最好使用应用程序的主机名。此外,如果通过而不是在标签中CSP发送,效果会更好。如果您有任何疑问,请告诉我。HTTP response headermeta