ng-recaptcha ERR:错误:“未捕获(承诺):[对象空]”

Ron*_*ofe 3 javascript recaptcha angular

我正在使用 ng-recaptcha 包来在我的网络应用程序中实现 Google reCAPTCHA V3。为此,我创建了一个服务,它将在客户端执行所有需要的操作。

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { ReCaptchaV3Service, OnExecuteData } from 'ng-recaptcha';

import { environment } from 'src/environments/environment';


const BACKEND_URL = environment.apiUrl + '/contact/';

@Injectable()
export class ContactService {
    constructor(
        private http: HttpClient,
        private recaptchaV3Service: ReCaptchaV3Service
    ) {}

    public sendContactForm(data): void {
        this.recaptchaV3Service.execute('contactForm').subscribe(data => {
            console.log(data);
        });

        // this.http.post(BACKEND_URL, data)
        //     .subscribe((responseData) => {
        //         console.log(responseData);
        //     });
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,在执行 recaptcha 时(在 sendContactForm 方法上),我收到以下错误:

“未捕获(承诺):[对象空]”

在此处输入图片说明

这里有什么问题?

Eli*_*ant 5

当站点未在 Google recaptcha/admin Domains 区域中“注册”时,会发生此错误。

解决方法:在recaptcha管理区添加域:

  1. 登录到您注册了重新验证码的 Google 帐户
  2. 输入谷歌“google recpatcha 管理控制台”
  3. 转到(生产)密钥的设置
  4. 在“域”中,添加以下两个条目:
localhost
127.0.0.1
Run Code Online (Sandbox Code Playgroud)
  1. 保存并测试您的验证码。

还有另一个问题提出了相同的问题并需要相同的解决方案。