Tag: recaptcha

reCaptcha Ajax的问题

我正在实现reCaptcha,我正在使用Ajax调用我的PHP页面来检查validation码的有效性,而无需刷新页面。 我有这个jQuery代码: $.post(‘php/captcha.php’, $(‘#captchaPost’).serialize(), function(data){ if(data != “Valid”) { $(‘#captchaError’).show(); $captchaFlag = “Invalid”; } else { $(‘#captchaError’).hide(); $captchaFlag = “Valid”; } }); 这个post处理程序的PHP代码: is_valid) { // What happens when the CAPTCHA was entered incorrectly echo “Error”; } else { echo “Valid”; } ?> 我使用Firebug检查了响应,并且PHP脚本总是返回“Error”,即使我输入正确的Captcha。 根据服务器,表单似乎正确POST,虽然我没有看到如何检查表单中发布的内容。 我没有使用PHP函数来构建reCaptcha表单; 我从谷歌的文档中得到了HTML。 有帮助吗?

Recaptcha Validate的JavaScript,JQuery或AJAX版本

我试图使用一些js代码validationrecaptcha但我得到一些权限错误“访问被拒绝”是否有可能使用javascriptvalidation代码和多个浏览器的ajax实现validation。 $(document).ready(function() { Recaptcha.create(“var_public_key”, recaptchadiv, { theme: “clean”, callback: Recaptcha.focus_response_field }); }); function submitFormData() { var urlString = “http://www.google.com/recaptcha/api/verify”; var params = encodeURI(“remoteip=” + $(“#userIp”).val() +”&privatekey=” + var_private_key + “&challenge=” + Recaptcha.get_challenge() + “&response=” + Recaptcha.get_response()); params = encodeURI(params); var status = document.getElementById(“status”); status.className = “”; status.innerHTML = “Submitting your data. Please wait…”; var html […]

由于IE兼容性问题,无法可靠地使用Google reCAPTCHA 2.0和jquery 2.1.4

我正在努力寻找一种方法来让Google的reCAPTCHA 2.0可靠地为IE用户工作。 一些IE用户收到消息: “ 请升级到支持的浏览器以获得reCAPTCHA挑战。 ” 这里和其他地方的许多post都说要在页面中添加以下元标记,我已经完成了: 添加此标记无法解决问题,并且要求网站用户尝试更改其浏览器设置不是一种选择。 我还能做些什么吗? 我也在IE 11中得到“ 对象不支持属性或方法’addEventListener’ ”错误,我怀疑它也与兼容性视图有关。 (jquery 2.1.4)

带有capcha,html5表单validation的单个页面上的两个表单不再起作用

我目前在单个页面上使用两个表单,生成函数以使用其标记提交不可见的重新访问。 其中一个问题是html5表单validation不再起作用,它忽略了输入字段上的“必需”标记。 #sFormId#保存数组中当前表单的表单ID。 submit function Submit#sFormId#(token){ document.getElementById(“#sFormId#”).submit(); } 我遇到的另一个问题是这两种forms是分开的div,互相切换。 如果第一个表单打开,则可以看到validation码徽章,但是一旦我切换另一个div以打开徽章,第一个徽章就会消失。

recaptcha调用中的“Access-Control-Allow-Origin”错误

我正在我的angularJS注册表格中实现recaptcha。 但我收到错误**“XMLHttpRequest无法加载https://www.google.com/recaptcha/api/verify 。请求的资源上没有’Access-Control-Allow-Origin’标头。 我使用https://github.com/VividCortex/angular-recaptcha进行recaptcha。 我的代码如下。 var app = angular.module(‘testApp’, [‘vcRecaptcha’]); app.controller(‘testCtrl’, function ($scope, vcRecaptchaService) { console.log(“this is your app’s controller”); $scope.model = { key: ‘ — public key–‘ }; $scope.submit = function () { var valid; console.log(‘Submit button’); var challenge = $(‘#recaptcha_challenge_field’).val(); var response = $(‘#recaptcha_response_field’).val(); console.log(‘challenge’ + challenge ); $.ajax({ url: “https://www.google.com/recaptcha/api/verify”, type: ‘POST’, […]

在浏览器后退按钮上重新加载recaptcha

我在寻呼时尝试了很多方法来重新加载图像,但无论我尝试什么,我都得到相同的图像。 有些方法很接近(我可以看到图像刷新,但是recaptcha服务器响应并重新出现前一个图像)。 单击后退按钮时是否有一些技巧可以重新加载图像? 如果用户输入的安全字不正确,我不希望我的用户必须重新输入所有表单信息。 我也想避免存储所有信息。 该页面是经典的asp,因此jquery或ajax方法将成为路径,或者id假设。 提前致谢。

未捕获的SecurityError:阻止具有原始“https://www.google.com”的框架访问具有原始“http://my.site.com”的框架。

我正在使用谷歌reCaptcha v2.0,当我尝试使用示例html页面时,这是在同一个域中工作但是当我尝试与完整生产页面集成时,同样的事情不起作用。 点击reC​​aptcha复选框后,它会继续加载,有时会在下面详细说明错误。 Uncaught SecurityError: Blocked a frame with origin “https://www.google.com” from accessing a frame with origin “http://my.site.com”. The frame requesting access has a protocol of “https”, the frame being accessed has a protocol of “http”. Protocols must match. 我已经尝试删除http,https并保持//以便网站协议可以匹配但没有运气。 如果有人在这里有解决方案,那将是一个很大的帮助。 提前致谢。

recaptcha 2.0 – 如何在n次失败尝试/限制后显示?

我环顾四周,没有看到任何具体的recaptcha 2.0,所以让我们看看我是否可以得到一些帮助。 我正在设置一个包含多个表单的注册/登录页面。为了提高安全性,我正在安装recaptcha 2.0。 它适用于单个表单以及在加载时呈现。 对于登录表单,我只想在尝试/限制失败后部署recaptcha 2.0。 似乎我已经在服务器端正确设置了,我得到了正确的登录延迟和重新部署部署的响应。 但是recaptcha现在正在显示。 我想按照这些说明操作 我已经做了几次尝试,包括: – 将recaptcha holder设置为display:none并且仅在触发时显示 – 仅在触发时附加recaptcha脚本。 我认为问题在于head标签上的recaptcha配置,但是我没有看到如何将其配置为由ajax调用触发。 这是我到目前为止: 1 – 在标签上显式调用recaptcha: var widgetId1; var widgetId2; var onloadCallback = function() { // Renders the HTML element with id ‘example1’ as a reCAPTCHA widget. // The id of the reCAPTCHA widget is assigned to ‘widgetId1’. widgetId1 = […]

不可见的reCAPTCHA以多种forms发送空的g-recaptcha-response

我正在尝试使用Google Invisible reCAPTCHA ,但是当我在同一页面中有多个表单时,它会发送空的g-recaptcha-response POST参数。 这是我的代码: 谷歌JS 表格1 Send 表格2 Send 我的JS (基于这个答案 ) $(document).ready(function() { window.captchaCallback = function(){ $(‘.g-recaptcha’).each(function(index, el) { var attributes = { ‘sitekey’ : $(el).data(‘sitekey’), ‘size’ : $(el).data(‘size’), ‘callback’ : $(el).data(‘callback’) }; grecaptcha.render(el, attributes); }); }; window.form1Callback = function(){ $(‘#form1’).submit(); }; window.form2Callback = function(){ $(‘#form2’).submit(); }; }); 当我提交其中一个表格时, g-recaptcha-response参数将被发送为空,如下所示。 有人可以帮我把它投入使用吗?

通过AJAX加载的页面上的reCAPTCHA字段无法加载。 建议?

实例: 没有AJAX 使用AJAX(单击“发送电子邮件”链接) 当我查看源页面时,一切正常,但是当我通过AJAX请求加载时,在reCAPTCHA所在的位置,我看到…… 显然,除非我的用户已禁用JS,否则这不起作用。 在此过程中不会抛出任何错误。 以非AJAX请求的速度查看代码,我看到…… 请注意脚本顶部的附加行,用于解决启用了JS的用户的问题。 所以我想问题是双重的。 WTF正在发生,我该如何解决? 我发现这个问题含糊其辞,但没有得到满满的答案。 我发现使用document.write提到了reCAPTCHA API,但我不知道它是否有效。 如果我忽略了一些明显的东西,请随时指出。 根据请求,AJAX调用是…… $(document).ready(function() { $.get(‘/inc/email.php’, function(data){ console.log(‘Get success!’); $(‘#email-form’).html(data); console.log(‘Get added to #email-form!’); $(‘#email-form form’).submit( function(){ $.ajax({ type: “POST”, url: “/inc/email.php”, data: $(‘#email-form form’).serialize(), success: function() { console.log(‘Submit success!’); $(‘#email-form’).html(data); } }); return false; }); } ); }); 到目前为止我尝试了什么: 重写代码以获取远程JS文件,将document.write()子句替换为我设置为特定ID的元素的附加,然后在页面上内联运行修改后的代码 显示没有插件的reCAPTCHA而不是PHP reCAPTCHA库