gpt4 book ai didi

javascript - ReCaptcha v3 不在 IE 11 中提供响应 token 对象

转载 作者:行者123 更新时间:2023-11-30 19:21:47 27 4
gpt4 key购买 nike

我正在开发 MVC .Net 应用程序。我们最近在其中引入了 reCaptcha v3,它在 Chrome 和 Firefox 中完美运行,但在 IE 中完全不运行。这是 header 部分中包含的代码:

    <script src="https://www.google.com/recaptcha/api.js?render=@ViewBag.CaptchaSiteKey"></script>
<script type="text/javascript">
grecaptcha.ready(function () {
var test = grecaptcha.execute('@ViewBag.CaptchaSiteKey', { action: '@ViewBag.CaptchaEnvironment'+'_' + '@ViewBag.CaptchaActionName'}).then(
function (token) {
// verify the token on the server
document.getElementById("RecaptchaResponse").value = token;
}, function (reason) {
document.getElementById("RecaptchaResponse").value = reason;
});
});
</script>

Viewbag 变量按预期设置,没有遗漏任何内容。

需要提供的对象是在我的正文部分中包含的表单中创建的:

input id="RecaptchaResponse"name="RecaptchaResponse"type="hidden"autocomplete="off"

但在 IE11 中使用时仍然为空。

我读过很多文章都在谈论这种行为,但没有任何效果。

提前致谢

最佳答案

Google reCAPTCHA v3 使用“JavaScript Promises”才能正常运行。

在您的代码示例中,grecaptcha.execute(...) 正在为 token 发出“ promise ”。一旦该 promise “实现”,就会执行代码的 .then(function() { ... }) 部分。

现代版本的 Chrome/Firefox 支持 JavaScript Promises。不幸的是,IE11 没有。为了让 promises 在 IE11 上运行,您需要包含一个 polyfill(参见:https://github.com/stefanpenner/es6-promise)。

关于javascript - ReCaptcha v3 不在 IE 11 中提供响应 token 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57378640/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com