我正在构建一个Chrome扩展程序,该扩展程序与我希望使用Google Recatcha保护的API进行交互,因为我打算在Chrome扩展程序之外使用它。 API方面正在运行,正确验证Google的重新回复响应,但是,在扩展程序的浏览器操作窗口中显示recatcha小部件会导致以下javascript错误:
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('chrome-extension://pjhcgfibbbmibojnlkgjejaojpokgldl:80') does not match the recipient window's origin ('chrome-extension://pjhcgfibbbmibojnlkgjejaojpokgldl').
在recaptcha_en.js
行中生成:
(a.window || ne(a.Tg)).postMessage(JSON.stringify({
message: c || null ,
messageType: b
}), Zj(a.path));
问题似乎是a.path
的价值是chrome-extension://pjhcgfibbbmibojnlkgjejaojpokgldl:80
,但我不知道如何影响这个价值。
此错误的结果是recaptcha小部件显示一条消息:
请升级到支持的浏览器以获取reCAPTCHA质询。
我通过auto render method显示小部件,但也尝试了导致相同错误的explicit method。有关信息,请使用以下content_security_policy
:
script-src 'self' https://*.google.com https://*.gstatic.com; object-src 'self'
有什么方法可以让我在我的扩展中工作吗?如果没有,整合recaptcha的最佳替代方法是什么?
答案 0 :(得分:0)
在recaptcha v3中
manifest.json “ content_security_policy”:“脚本src'自我'https:// .google.com https:// .gstatic.com;对象src'自我'”
在RECAPTCHA ADMIN控制台中允许的域中添加铬色扩展ID
chrome-extension:// aailnablglhloogfnpkgddnjjfimhhhg
因此,您只需要输入“ aailnablglhloogfnpkgddnjjfimhhhg”,而无需添加铬扩展名://