我有一个角度应用程序,根据设置,它与 Tomcat 上的 REST API 或 Jetty 上的 REST API 进行通信。角度应用程序本身与战争托管在同一个 tomcat/jetty 上。
Tomcat 设置前面可能有 Apache(取决于客户端)
该应用程序需要使用 base64 图像(通过 css 加载),但现在,如果它托管在服务器上,我会收到以下错误:
Refused to load the image 'data:image/png;base64,...' because it violates the following Content Security Policy directive: "default-src https:". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.
Run Code Online (Sandbox Code Playgroud)
所以我做了什么:在index.html中,我设置了:
<meta http-equiv="Content-Security-Policy"
content="default-src https: http:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https: http:; style-src http: https: 'unsafe-inline'; img-src 'self' data: https:; connect-src http: https: ws:;">
Run Code Online (Sandbox Code Playgroud)
在手动 Spring 过滤器中,我设置了:
httpServletResponse.setHeader("Content-Security-Policy", …Run Code Online (Sandbox Code Playgroud)