我使用sbt来构建一个play-scala-seed项目,并添加一个简单的:
<button id="doclick" onclick="doConsole();">click</button>
Run Code Online (Sandbox Code Playgroud)
但是当我启动项目并单击按钮时.控制台提供错误输出:
localhost /:17拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:"default-src*".要么是'unsafe-inline'关键字,哈希('sha256 -...'),要么是nonce('nonce -...')来启用内联执行.另请注意,'script-src'未显式设置,因此'default-src'用作后备.
application.conf
play.http.filters = "filter.Filters"
play.filters.headers.contentSecurityPolicy="script-src 'self' 'unsafe-inline'"
Run Code Online (Sandbox Code Playgroud)
只需按照官方doc play-securityheaders
我错过了什么或得到错误的路径导致仍然无法调用内联脚本?
我遇到了同样的问题,经过 2 个小时的摆弄后找到了解决方案。
我正在使用编译时依赖注入,并将应用程序 mixin 从 更改HttpFiltersComponents为NoHttpFiltersComponents,这解决了问题。