【问题标题】:How can google captcha be validated on client side using ExtJs如何使用 ExtJs 在客户端验证谷歌验证码
【发布时间】:2016-04-22 10:44:00
【问题描述】:

如何使用 ExtJS 在客户端验证谷歌验证码

 listeners: {
      'afterrender': function () {
           grecaptcha.render('reCaptcha', {
                'sitekey': '**key**',
                'callback' : 'correctCaptcha'
           });
      }
 }

当我尝试使用回调函数时出现以下错误

recaptcha__en.js:345 Uncaught TypeError: this.Mc.callback is not a 功能

这是我得到的控制台输出:

【问题讨论】:

  • 你在哪里以及如何定义correctCaptcha函数?
  • 我在listeners中添加了correctCaptcha
  • 这是一个范围问题,我猜你的回调函数应该在全局范围内。
  • @SergeyNovikov 在客户端还有其他方法吗?
  • 我认为你可以使用new Function() 并在你的监听器中定义它,阅读this artice

标签: extjs extjs4.2 recaptcha


【解决方案1】:

可能是范围问题,请确保您的回调函数 correctCaptcha 在全局 (?) 范围内。

您可以在任何嵌套函数(例如您的事件监听器)中定义回调函数,如下所示:

window.correctCaptcha = function() {}

【讨论】:

  • 你能举个小例子更好地理解,因为我仍然遇到同样的错误
  • 更新了我的答案,我错了new Function()
  • 先生上面的解决方案没有奏效,得到同样的错误。
  • Ehm,您可以尝试打开您的 UI,收到此错误并从浏览器控制台调用 correctCaptcha() 吗?如果出现错误 - 你的函数不知何故仍然不在全局范围内,我不知道为什么......
  • 你在grecaptcha.render()调用之前定义correctCaptcha
猜你喜欢
  • 1970-01-01
  • 2019-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多