我在http://www.ember-cli.com/#ember-data上建议使用带有Ember CLI的http-mock。我理解CSP的基本概念,但我不了解它在Ember CLI应用程序中的配置。
如何配置我的应用程序以接受localhost:4200/api/
的请求以避免在开发过程中出现这种情况:
Content Security Policy violation: {
"csp-report": {
"document-uri":"http://localhost:4200/products",
"referrer":"",
"violated-directive":"style-src 'self'",
"effective-directive":"style-src",
"original-policy":"default-src 'none'; script-src 'self' 'unsafe-eval' localhost:35729 0.0.0.0:35729; font-src 'self'; connect-src 'self' ws://localhost:35729 ws://0.0.0.0:35729 http://0.0.0.0:4200/csp-report; img-src 'self'; style-src 'self'; media-src 'self'; report-uri http://0.0.0.0:4200/csp-report;",
"blocked-uri":"",
"source-file":"chrome-extension://alelhddbbhepgpmgidjdcjakblofbmce",
"line-number":1,"column-number":20481,"status-code":200
}
}
答案 0 :(得分:13)
您可以通过修改config/environment.js
来调整内容安全策略。我相信您的情况,connect-src
与被抛出的错误相关(编辑:看起来像style-src
正在被违反,可能是Chrome Extension Awesome屏幕截图)。添加*
将允许它连接到任何内容。
var ENV = {
...
contentSecurityPolicy: {
'default-src': "'none'",
'script-src': "'self'",
'font-src': "'self'",
'connect-src': "'self' *",
'img-src': "'self'",
'style-src': "'self' *",
'media-src': "'self'"
}
}
或者更具体地说,您可以添加:
...
'connect-src': "'self' 'localhost:4200'",
...
此外,如果您只想将其添加到您的开发环境中,请将其放入:
if (environment === 'development') {
ENV.contentSecurityPolicy = {
...(policies)...
}
}
ember-cli
中有关CSP的更多信息:https://www.npmjs.com/package/ember-cli-content-security-policy。
有关CSP的更多信息:http://content-security-policy.com/