尝试redoc-cli (https://github.com/Redocly/redoc/)生成静态文档。这些错误没有任何进展。看起来Content-Security-Policy根本不允许JS代码。
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-g6NjhUYDGd6SXSIYkvuQkZhdbtqx8hqNKVM8JKvqpy4='), or a nonce ('nonce-...') is required to enable inline execution.
<meta
http-equiv="Content-Security-Policy"
content="
base-uri;
connect-src *;
default-src * 'unsafe-inline' 'unsafe-eval' data: gap: https://ssl.gstatic.com;
font-src * data:;
form-action;
img-src * data:;
manifest-src *;
media-src;
object-src *;
report-to;
script-src * 'unsafe-inline' 'unsafe-eval';
script-src-attr * 'unsafe-inline' 'unsafe-eval';
script-src-elem * 'unsafe-inline' 'unsafe-eval';
style-src * data: 'unsafe-inline';
style-src-attr * data: 'unsafe-inline';
style-src-elem * data: 'unsafe-inline';
">更新
终于修好了。
服务器应该发送以下标题:
“内容-安全性-策略”= "script-src blob:“内容-安全性-策略”= "worker-src blob:“
而且manifest.json应该有附加的字段:
{
"content_security_policy": "script-src * 'unsafe-inline' 'unsafe-eval'",
"csp": "script-src * 'unsafe-inline' 'unsafe-eval'"
}发布于 2020-10-23 06:21:23
从错误中可以看到,拒绝执行内联脚本,因为它违反了以下内容安全策略指令:" script -src 'self'__",锁发生在script-src 'self'中。但是元标记中的CSP没有这个。
这意味着你真的有另一个CSP发行了。通常,应用程序中间件有一个默认的通过HTTP头发出的CSP,但从技术上讲,您也可以有2个元标记CSP。如果有2个CSP,则采用更严格的方法。
检查2个<meta http-equiv="Content-Security-Policy"的HTML代码,并在开发工具中签入内容-安全策略HTTP头(这里是一个教程)。
上述修正后:
'unsafe-eval'令牌。它是页面的全局标志,仅可用于script-src/default(参见第4段中的备注 )。*和data:。它控制标记中的style='...'属性,不使用任何方案源。*。它控制事件处理程序,如onClick='...'或javascript-导航(如<a href='javascript:...' ),并且除了javascript:之外没有任何方案源。全检查错误列表.但是你可以在上面的CSP中,浏览器只是忽略了那些。
https://stackoverflow.com/questions/64478737
复制相似问题