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

时间:2019-12-25 12:48:12

标签: javascript angular recaptcha

我正在使用ng-recaptcha软件包,以便在我的网络应用中实施Google reCAPTCHA V3。 为此,我创建了一个Service,它将在客户端执行所有必需的操作。

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);
        //     });
    }
}

不幸的是,当执行recaptcha(在sendContactForm方法上)时,出现以下错误:

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

enter image description here

这是怎么了?

2 个答案:

答案 0 :(得分:4)

如果未在Google recaptcha / admin域区域中“注册”网站,则会发生此错误。

解决方案:将域添加到recaptcha管理区域:

  1. 登录已注册验证码的Google帐户
  2. 输入Google“ google recpatcha管理控制台”
  3. 转到(生产)键的设置
  4. 在“域”中,添加以下两个条目:
localhost
127.0.0.1
  1. 保存并测试您的Recaptcha。

还有另一个question,它要求相同的内容并需要相同的解决方案。

答案 1 :(得分:2)

您需要将您的域添加到Recaptcha管理员console

别忘了为测试添加localhost