web-dev-qa-db-ja.com

ReCAPTCHAは、ユーザー提供の関数myCallBackを見つけることができませんでした

次のエラーが発生する場所でReCAPTCHAを使用しようとしています。

ReCAPTCHAは、ユーザーが指定した関数myCallBackを見つけることができませんでした。

この問題を解決するにはどうすればよいですか?

var verifyCallback3 = function(response) {
    if(response!=null){
        $("#rss").show();
    }
};

var myCallBack = function() {
    grecaptcha.render('html_element', {
        'sitekey' : '6sssfffffffffAAPfEI_RkbAlUuw5FA4p-kiGy5Nea',
        'callback' : verifyCallback3,
        'theme' : 'light',
        'type':'image'
    });
};
21
Sheetal Sharma

コールバック関数がグローバルスコープで定義されていることを確認してください。何らかの理由で、本番環境では、私の機能はこの名前空間にありませんでした。

に加えて:

function myCallback() { ... }

必ずグローバルスペースに直接割り当ててください。

window.myCallback = myCallback;

これが問題かどうかをテストできるはずです。Javascriptコンソールで関数名を入力し、定義されているかどうかを確認します。

14
John Lehmann

Recaptcha divで、データコールバックで括弧を使用しないようにしてください。

data-callback="yourCallback();"ではなくdata-callback="yourCallback"のように

7
Qasim

私と同じことが起こっています。コードを慎重に確認しましたが、すべてがうまくいきましたが、captchaは表示されず、コンソールには「ReCAPTCHAはユーザー提供の関数を見つけることができませんでした:myCallBack」でしたが、最終的に私のJavaScriptコードはページ読み込み機能です。私はちょうどページ読み込み機能とその動作からそれを出しました。

4
husnain shabbir

スクリプト関数を配置する必要があります。

<script> function registerFormCheck()</script>

Googleスクリプトの前に次のようなもの:

/* First */    <script> function registerFormCheck(){} </script>
/* Second */   <script> src='https://www.google.com/recaptcha/api.js'></script>

これは私のために働いた...