【问题标题】:how to integrate google-recaptcha in oracle-jet如何在 oracle-jet 中集成 google-recaptcha
【发布时间】:2019-08-15 08:43:48
【问题描述】:

我正在尝试集成 google-recaptcha 但没有成功。

遇到错误

feedback.js:39 Uncaught TypeError: grecaptcha.render is not a function

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

【问题讨论】:

  • 似乎您将ckeditor 加载为grecaptcha 而不是googlerecaptcha
  • 我已经更正了序列,但它仍然给出错误

标签: recaptcha amd oracle-jet


【解决方案1】:

您在 src/js/path_mapping.json 中有“googlerecaptcha”的映射吗?如果我转到https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit,我看不到它返回任何有效对象。所以很可能“grecaptcha”变量是未定义的。

reCaptcha + RequireJS

看起来 reCaptcha 是一个必须执行的函数,而不是一个可以直接与之交互的对象。所以你可能需要一个不同的方法,在这个线程中提到的东西。

【讨论】:

    猜你喜欢
    • 2018-09-19
    • 2020-05-10
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2021-06-02
    • 2017-09-13
    • 2016-10-07
    • 2021-05-16
    相关资源
    最近更新 更多