簡體   English   中英

Even with the inline JavaScript function - Google ReCAPTCHA couldn't find user-provided function: function (response) -

[英]Even with the inline JavaScript function - Google ReCAPTCHA couldn't find user-provided function: function (response) -

我正在使用 ReCAPTCHA 版本 V2。 在回調 function (即data-callback )上,我收到以下錯誤消息。

ReCAPTCHA 找不到用戶提供的 function:function(響應)

現在,我在 web 上看到的大多數帖子/解決方案都與本地回調 function 相關,該回調在g-recaptcha div 的數據回調屬性中引用時不會被調用。 但是,就我而言,即使是內聯 function 也不會被調用。 請看下面的圖片。

截圖 1: 截圖-1

其實我在使用JavaScript原生function比如alert()的時候,還是不行。

截圖 2: 截圖-2

這是我正在使用的 JS 代碼。

<script src='https://www.google.com/recaptcha/api.js'></script>

第一次嘗試-回調function:

<div class="g-recaptcha" data-sitekey="Please add your site key if you want to test" data-callback="function (response) { alert('working: ', response);}"></div>

第二次嘗試 - 回調 function:

<div class="g-recaptcha" data-sitekey="Please add your site key if you want to test" data-callback="Window.alert('hi');"></div>

如果您能幫助我理解為什么 google API 以一種完全奇怪的方式響應,我將感謝您的幫助。

Google ReCAPTCHA 中的內聯 JavaScript function 將永遠無法工作。

如果它可以節省某人的時間,我會在這里發布他的答案。

所有功勞歸於@Christos Lytras 非常感謝他幫助我理解了 Google ReCAPTCHA 背后的 JS。 他在評論部分所說的關於 Recaptcha 的 JS 試圖通過它在全球 window object 中的名稱來識別 function,是絕對正確的。 因此,我的實現不起作用並且永遠不會起作用(至少在 V2 版本中)。

在我嘗試實現內聯 function 的所有解決方案中,它被讀取為window[function (){}]window[Window.alert('hi');]這是不正確的 JS 語法。 因此,當我按照以下方式嘗試時,它就像魅力一樣。

正確的方法

<script>window.myCallBackFunction = function() { alert("HI"); }</script>
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="XXX" data-callback="myCallBackFunction" ></div>

請注意:為了更清楚起見,我還嘗試在發布此問題之前最初實施回調 function,但由於腳本的順序,它沒有工作。 感謝在@Christos Lytras的解釋之后對另一個問題有很大幫助的答案 一開始,我是按以下順序實施的。

不正確的方法

<script src='https://www.google.com/recaptcha/api.js'></script>
<script>window.myCallBackFunction = function() { alert("HI"); }</script>
<div class="g-recaptcha" data-sitekey="XXX" data-callback="myCallBackFunction" ></div>

我希望它可以幫助像我這樣的人,在未來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM