我试图整合谷歌-但没有成功。
获取误差
feedback.js:39 Uncaught : grecaptcha.render不是一个函数
main.js 'googlerecaptcha':'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit',
define(['ojs/ojcore', 'knockout', 'jquery', 'appController', 'ckeditor', 'googlerecaptcha', 'ojs/ojlabel',
'ojs/ojknockout', 'ojs/ojinputtext', 'ojs/ojformlayout'],
function (oj, ko, $, app, ckeditor, grecaptcha) {
/**
* The view model for the main content view template
*/
function feedbackViewModel() {
var self = this;
// For small screens: labels on top
// For medium screens and up: labels inline
this.labelEdge = ko.computed(function () {
return app.smScreen ? "top" : "start";
}, this);
onloadCallback = function (a) {
grecaptcha.render('submit', {
'sitekey': 'YOUR_API_KEY',
'callback': self.onSubmit
}, true);
};
this.handleActivated = function (info) {
};
self.onSubmit = function (token) {
console.info("google recatpcha onSubmit", token)
//do validation/application code using token
var data = {secret: grecaptcha, response: recaptchaToken};
$.post({
url: "https://www.google.com/recaptcha/api/siteverify",
form: data
}).then(function (e) {
//recaptcha service called...check result
var resp = JSON.parse(e);
if (resp.success == false) {
console.info("recaptcha token outcome is false")
} else {
console.info("recaptcha token validated")
}
});
};
}
return feedbackViewModel;
}); 发布于 2019-03-29 10:17:47
您对src/js/path_mapping.json中的“googlerecaptcha”有映射吗?如果我转到https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit,我看不到它正在返回任何有效的对象。因此,最有可能的“grecaptcha”变量是未定义的。
看起来,reCaptcha是一个必须执行的函数,而不是一个可以直接与之交互的对象。因此,您可能需要一种不同的方法,在这个线程中提到的东西。
https://stackoverflow.com/questions/55332200
复制相似问题