Jquery 在Webkit浏览器中提交Ajax表单后,Ambethia Recaptcha无法重新提交
我的Rails应用程序中有一个Ajax表单,其中包含由Ambethia Recaptcha gem中的助手提供的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')) %>"); $(“#消息格式”)。替
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"
#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()
}