内容安全政策阻止对 *://www.google.com/recaptcha/api 的请求

2023-12-01

鉴于此链接, 看起来内联脚本例如用于在页面中插入验证码对象,通过

<script type="text/javascript"
     src="http://www.google.com/recaptcha/api/challenge?k=your_public_key">
</script>
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=your_public_key"
     height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"
     value="manual_challenge">
</noscript>

or via

 <script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>

with

Recaptcha.create("your_public_key",
"element_id",
{
  theme: "red",
  callback: Recaptcha.focus_response_field
}

);

我总是收到一些关于内容安全策略的投诉,尽管我的manifest.json显然允许urls'http://www.google.com/recaptcha/api/js/recaptcha_ajax.js

我是否遗漏了一些非常明显的东西,导致整个问题变得疯狂?


我只花了两个小时来解决这个问题。对我来说,我也认为对于这个例子来说,问题在于src属性;也就是说,在http:。更改引用如下:

<script type="text/javascript" 
     src="https://www.google.com/recaptcha/api/challenge?k=your_public_key">
              ^  v
<iframe src="https://www.google.com/recaptcha/api/noscript?k=
     height="300" width="500" frameborder="0"></iframe>

解决了问题。基本上,您尝试使用不安全的连接访问 google api,并且某些浏览器(例如 Chrome)默认情况下不会呈现不安全的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内容安全政策阻止对 *://www.google.com/recaptcha/api 的请求 的相关文章