Pat*_*atS 4 html javascript firefox content-security-policy
我想尝试使用 Javascript,并创建了一个在 Firefox (68.0.1) 中打开的文件file:///C:/play/my.html。该文件位于 JSFiddle 上:https://jsfiddle.net/PatS2265/7r4j6ewa/(但代码可以在 JSFiddle 中运行)。
在 Firefox 中,当我打开此文件时,控制台中出现以下错误:
\n\n内容安全策略:页面\xe2\x80\x99s 设置阻止加载内联资源 (\xe2\x80\x9cscript-src\xe2\x80\x9d)。
\n\n我查找了如何解决这个问题并尝试添加:
\n\n<meta http-equiv="Content-Security-Policy" content="default-src *; style-src \'self\' \'unsafe-inline\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\' http://www.google.com">\nRun Code Online (Sandbox Code Playgroud)\n\n但这并没有解决问题。该文件如下所示(我尝试添加 Content-Security-Policy 元标记失败。
\n\n内容安全策略的正确语法是什么?
\n\n注意:在 Chrome (v76.0.3809.100) 中,此文件刚刚起作用,因此我现在可以解决这个问题。
\n\n<!DOCTYPE html>\n<html>\n<head>\n <title>My Async Test</title>\n <meta http-equiv="Content-Security-Policy" content="default-src *; style-src \'self\' \'unsafe-inline\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\' http://www.google.com">\n <meta charset="UTF-8" />\n</head>\n<body>\n<script>\nfunction clickMe() {\n f().then(alert);\n}\nasync function f() {\n return 1;\n}\n</script>\n Just testing\n <button type="button" onclick="clickMe()">Run Async Function</button>\n</body>\n\n</html>\nRun Code Online (Sandbox Code Playgroud)\n\n搜索次数
\n\n我搜索了如何解决此问题,并找到了禁用内容安全策略的解决方案。
\n\n其他有用的结果是:
\n\n\n\n我刚刚在 StackOverflow 中找到了内容安全策略的标签,所以我现在就开始搜索。
\n好吧,我觉得有点尴尬,因为我没有早点得到这个。我必须感谢@Nickolay 的评论,他没有看到这个问题,并询问它是否可以是一个附加组件,或者我是否在新的配置文件中尝试过这个,所以我检查了两者。
我使用about:profiles并单击创建了一个干净的配置文件Create a New Profile,当我在该配置文件中运行时,它起作用了!
接下来我意识到我启用了附加NoScript,这阻止了 Javascript 在本地文件 ( ) 上运行file:///C:/!
在NoScript中启用本地文件后,问题就消失了。
Doh(用手敲打额头)。