我正在使用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方法上)时,出现以下错误:
“未捕获(承诺):[对象为空]”
这是怎么了?
答案 0 :(得分:4)
解决方案:将域添加到recaptcha管理区域:
localhost 127.0.0.1
还有另一个question,它要求相同的内容并需要相同的解决方案。
答案 1 :(得分:2)
您需要将您的域添加到Recaptcha管理员console。
别忘了为测试添加localhost
。