JavaScript,JQuery或AJAX版本的Recaptcha Validate [英] JavaScript, JQuery, or AJAX version of Recaptcha Validate

查看:129
本文介绍了JavaScript,JQuery或AJAX版本的Recaptcha Validate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

am尝试使用一些js代码验证Recaptcha,但获得一些权限错误访问被拒绝" 是否可以在多个浏览器中使用javascript验证代码以及ajax来实现验证.

am trying to validate the recaptcha using some js code but am getting some permission Errors "Access is Denied" Is it possible to achieve the validation using the javascript validation code alongside ajax across multiple browsers.

<script type="text/javascript">


    $(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 = "<b>Submitting your data. Please wait...</b>";
        var html = $.ajax({
            type: "POST",
            url: urlString + "?" + params,
            async: false
        }).responseText;

        alert("ResponseText: " + html + ", Recaptcha.responseText: " + Recaptcha.responseText);

        var result = html.split("\n")[0];

        if (result == "true") {
            status.innerHTML = " ";
            return true;
        }
        else {
            status.className = "GlobalErrorText";
            status.innerHTML = "Your captcha is incorrect. Please try again";
            Recaptcha.reload();
            return false;
        }
    }
</script>

推荐答案

@Boug是正确的,这称为跨站点ajax请求,您可以看到此问题,以查看是否可以找到解决方案

@Boug is right, this is called cross site ajax request, you can see this question to see if you can a find a solution Cross-site AJAX requests but....

我认为将您的Recaptcha私钥放在javascript中是一个漏洞,Recaptcha应该在服务器端代码上进行验证,此问题包含有关如何在Asp.Net MVC中实现Recaptcha的有用链接. stackoverflow.com/questions/4611122/how-to-implement-recaptcha-for-asp-net-mvc>如何为ASP.NET MVC实现reCaptcha?我使用了这种方法,并且效果很好 http://www.dotnetcurry.com/ShowArticle.aspx?ID=611&AspxAutoDetectCookieSupport = 1

I think putting your private key for recaptcha in javascript is a vulnerability, recaptcha should be validated on Server Side code, this question contain useful links about how to implement recaptcha in Asp.Net MVC How to implement reCaptcha for ASP.NET MVC? I used this approach and it works perfectly http://www.dotnetcurry.com/ShowArticle.aspx?ID=611&AspxAutoDetectCookieSupport=1

这篇关于JavaScript,JQuery或AJAX版本的Recaptcha Validate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆