我正在构建一个Chrome扩展程序,该程序可以与希望通过Google recatcha保护的API进行交互,因为我打算将其扩展到Chrome扩展程序之外。API端正在工作,可以正确验证与Google的recapcha响应,但是,在扩展程序的浏览器操作窗口内显示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').
Run Code Online (Sandbox Code Playgroud)
recaptcha_en.js
在以下行中生成:
(a.window || ne(a.Tg)).postMessage(JSON.stringify({
message: c || null ,
messageType: b
}), Zj(a.path));
Run Code Online (Sandbox Code Playgroud)
这个问题似乎是,价值a.path
是chrome-extension://pjhcgfibbbmibojnlkgjejaojpokgldl:80
,但我不知道我会如何影响该值。
该错误的结果是recaptcha小部件显示一条消息,内容为:
请升级到受支持的浏览器,以获取reCAPTCHA挑战。
我正在通过自动渲染方法显示窗口小部件,但也尝试了导致相同错误的显式方法。有关信息,我使用以下方法content_security_policy
:
script-src 'self' https://*.google.com https://*.gstatic.com; object-src 'self'
Run Code Online (Sandbox Code Playgroud)
有什么办法可以让我的扩展程序正常工作吗?如果没有,那么整合Recaptcha的最佳替代方法是什么?