8

我正在尝试使用 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

4 回答 4

16

出于安全原因,禁止 JavaScript 进行跨域 XMLHttpRequests。有一些变通方法,但它们仅在您控制两个域时才有效。

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

于 2009-02-12T10:46:00.347 回答
3

我会看-> racaptcha docs AJAX 在javascript中有一个完整的示例。

于 2012-09-04T00:18:15.933 回答
1

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

于 2011-08-12T12:22:41.987 回答
0

@Magnar 已经回答了关于安全原因的问题。@Guido Lemmens 2 给出了一个 PHP 示例。我想从另一个 Stack question添加一些 ASP.NET WebForms (vs. MVC) 代码。

于 2012-04-03T21:05:57.447 回答