Jquery 在Webkit浏览器中提交Ajax表单后,Ambethia Recaptcha无法重新提交

Jquery 在Webkit浏览器中提交Ajax表单后,Ambethia Recaptcha无法重新提交,jquery,ruby-on-rails,webkit,recaptcha,Jquery,Ruby On Rails,Webkit,Recaptcha,我的Rails应用程序中有一个Ajax表单,其中包含由Ambethia Recaptcha gem中的助手提供的Recaptcha标记: recaptcha_tags :ajax => true 提交时,表单点击一个create操作,该操作将以create.js.erb响应,其中包含以下内容: $('#message-form').replaceWith("<%= escape_javascript(render('message')) %>"); $(“#消息格式”)。替

我的Rails应用程序中有一个Ajax表单,其中包含由Ambethia Recaptcha gem中的助手提供的Recaptcha标记:

recaptcha_tags :ajax => true
提交时,表单点击一个create操作,该操作将以create.js.erb响应,其中包含以下内容:

$('#message-form').replaceWith("<%= escape_javascript(render('message')) %>");
$(“#消息格式”)。替换为(“”);
“message”部分包含与最初呈现的表单标记相同的表单标记,包括recaptcha_标记,但如果此时验证中出现错误,也可能会显示

在Firefox中,表单被重新呈现并显示刷新的验证码。但由于某些原因,在Webkit浏览器(Safari和Chrome)中,“dynamic_recaptcha”recaptcha元素被清空,就好像从来没有调用过recaptcha.create(public_key,element_id)

在Safari开发者控制台中,我可以调用Recaptcha.create(public_key,element_id)并重新生成验证码


谁能告诉我这里发生了什么事?谢谢。

我也遇到了同样的问题,无法在webkit浏览器中使用recaptcha_标记

最后,我按照官方的指导方针写了这样一篇文章(用HAML写)


  • 在布局标题标记中:

    = javascript_include_tag "http://api.recaptcha.net/js/recaptcha_ajax.js"
    
  • 在渲染的部分 通过ajax:

    #dynamic_recaptcha
    :javascript
      Recaptcha.create('YOURPLUBLICKEY', document.getElementById('dynamic_recaptcha') , '')
    


  • 我用以下方法解决它:

    将ajax在运行时不会加载的脚本放在head中:

    <script type="text/javascript" src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>
    

    如果有人有这个问题,阿贾克斯:真的帮了我。Im使用rails 3.2.13和recaptcha 0.3.5

    =recaptcha_tags(display: {theme: 'clean'}, ajax: true)
    
    在HTML文件中。 recaptcha_标记(ajax:true)

    在AJAX请求中
    recaptcha_ajax.js的链接似乎已经死了。我发现这一个别忘了escape_javascript,比如:$(“#recaptcha_div”).html(“”)
    new Ajax.Updater('example_div', '/example', { parameters: {text: $F('example_text')}, evalScripts: 'true'});
    
    =recaptcha_tags(display: {theme: 'clean'}, ajax: true)
    
    $.ajax({
      url: "/users/sign_in",
      type: "POST",
      data: { 
     
      email_id: user_email_id,
      password: pwd,
      type: login_type,
      browser_det: browser_details,
      login_type: "firebase",
      "g-recaptcha-response": grecaptcha.getResponse()
      }