javascript 检测Google Recaptcha执行错误

2lpgd968  于 2023-10-14  发布在  Java
关注(0)|答案(3)|浏览(95)

我如何能有一个等效的.fail为grecaptcha.execute()如果发生错误,没有连接或超时连接,我捕捉错误。

<script>
  function onClick(e) {
    e.preventDefault();
    
    grecaptcha.ready(function() {
        grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'}).then(function(token) {
            // Code if no error
        });

        // Catch the error if occurred
    });
  }
ne5o7dgx

ne5o7dgx1#

你应该在这里使用try {} catch {}:

grecaptcha.ready(async () => {
    try {
        const token = await grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'});
        // SUCCESS!
    } catch(err) {
        // ERROR!
    }
});
anauzrmj

anauzrmj2#

你有没有试过把它传递到一个try/catch块中?

function onClick(e) {
  e.preventDefault();

  try {
    grecaptcha.ready(function () {
      grecaptcha
        .execute("reCAPTCHA_site_key", { action: "submit" })
        .then(function (token) {
          // Code if no error
        });
    });
  } catch (e) {
    console.log(e);
  }
  // Catch the error if occurred
}
flvtvl50

flvtvl503#

因为execute函数本身就是一个Promise,所以我们可以直接捕获它。

grecaptcha.ready(function() {
  grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'}).then(function(token) {
    // Code if no error
  }).catch(function(error) {
    // Code for error
  });

相关问题