2016-05-18 39 views
19

我使用的页面加载验证码的加载,但正是因为一些安全原因阻止内容安全策略:该页面的设置拦截资源

我面临的问题:

 
    Content Security Policy: The page's settings blocked the loading 
    of a resource at 
    http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit 
    ("script-src http://test.com:8080 'unsafe-inline' 'unsafe-eval'"). 

我有使用以下js和元标记:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"> 
<script src="http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script> 
+0

如果我是你,我会尝试使用服务器端代码,而不是JavaScript。 JS对CORS和类似的东西不太好。谷歌确实有这个选项.. – Gogol

回答

15

你说你只能从你自己的网站(自我)加载脚本。然后您尝试从另一个网站(www.google.com)加载脚本,并且因为您限制了这一点,所以您不能。这就是内容安全策略(CSP)的重点。

您可以在第一行更改为:

<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"> 

,或者,如果你不明白CSP它可能是值得去除线完全,直到你找到更多关于它。