reCaptcha 在本地主机上工作吗?

does reCaptcha work in localhost?

是吗?

一切正常,直到我将用户响应发送到 google 服务器进行验证。这是发送响应的代码:

$http({
    method: "get",
    url: "https://www.google.com/recaptcha/api/siteverify",
    params: {
       secret: 'my-secret-key',
       response: $scope.response
    }
}).success(function (response) {
    console.log(response);
}).error(function (errResponse) {
    console.log(errResponse)
});

然后,我得到这个:

请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许访问来源“http://localhost:8000”。

是的,它有效,但你不能发送 ajax/http 请求来从 js 验证验证码。您应该编写自己的后端函数来发送此请求。

像这样:

  1. 使用 js 回调从验证码获取响应(就像您已经做的那样)
  2. 向您自己的服务器发送 ajax 带有验证码响应的请求
  3. 从您的服务器向 https://www.google.com/recaptcha/api/siteverify
  4. 发送带有响应和密钥的请求
  5. Return 响应您的 ajax 函数。