在我的index.html
我有一个元标记:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
当我运行ionic serve
(Ionic版本为1.6.1)时,我收到以下错误:
拒绝加载脚本 &#39; http://localhost:35729/livereload.js?snipver=1&#39;因为它违反了 以下内容安全策略指令:&#34; script-src&#39; self&#39; &#39;不安全直插&#39; &#39;不安全-EVAL&#39; http://localhost:8100&#34;
有谁知道如何解决这个问题?
答案 0 :(得分:3)
我注意到,您已将script-src
设置为self
,这意味着脚本将仅使用相同的来源(主机名)从您的域加载。
在Web服务器上运行时,您的端口号已更改,因为它选择随机选择的端口来运行应用程序。我对Ionic
服务器没有任何了解,但对于CSP
,我可以得出结论。
在您的情况下,localhost:35729
和localhost:8100
显然不相同,因此策略标头会阻止加载脚本。
要解决此问题,最好使用应用的主机名。此外,CSP
如果您通过HTTP response header
而不是meta
标记发送,效果会更好。如果您有任何疑问,请告诉我。