使用jQuery验证RECAPTCHA

时间:2009-02-12 10:16:08

标签: jquery recaptcha

我正在尝试使用jQuery验证Recaptcha,但我一直收到错误告诉我:访问受限制的URI被拒绝“代码:”1012

这是我到目前为止所尝试的:

 var challengeVal = $("#recaptcha_challenge_field").attr("value");
 var reponseVal = $("#recaptcha_response_field").attr("value");
 var remoteIp = <%= "'" + Request.ServerVariables["REMOTE_HOST"] + "'" %>
 var privateKey = 'MY_PRIVATE_KEY';

 var requestUrl = "http://api-verify.recaptcha.net/verify?privatekey=" + privateKey + "&remoteip=" + remoteIp + "&challenge=" + challengeVal + "&response=" + reponseVal;

 $.ajax({
    type: "POST",
    url: requestUrl,
    dataType: "json",
    success: function(data) {
       alert('response from recaptcha');
    },
    error: function() {
       alert("An error occured.");
    }
  });

任何人都试过这个,谁能指出我正确的方向?

感谢。

4 个答案:

答案 0 :(得分:16)

出于安全原因,禁止JavaScript制作跨域XMLHttpRequests。有workarounds,但只有在您控制两个域时它们才有效。

解决方案:对您自己的服务器进行AJAX调用,并通过服务器端代码联系recaptcha。

答案 1 :(得分:3)

我会看 - &gt; racaptcha docs AJAX javascript中有一个完整的例子。

答案 2 :(得分:1)

可以从this page找到并下载完整演示。但您仍需要在此处为​​您的域生成公钥和私钥https://www.google.com/recaptcha/admin/create

答案 3 :(得分:0)

@Magnar已经回答了安全原因。 @Guido Lemmens 2给出了一个PHP示例。我想从另一个堆栈question添加一些ASP.NET WebForms(与MVC)代码。