重新验证码 Angular CORS 问题

Ala*_*n A 1 cors angularjs

我正在使用 Angular 1.x 向 Google 的重新验证码发送验证请求,如下所示:

var post_data = {  //prepare payload for request
     'secret':'xxxxx',
     'response':fields.myRecaptchaResponse
};

$http.post('https://www.google.com/recaptcha/api/siteverify', post_data)
Run Code Online (Sandbox Code Playgroud)

在我的控制台中,我可以看到以下错误:

XMLHttpRequest 无法加载https://www.google.com/recaptcha/api/siteverify。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源 ' http://igs.dev '。响应具有 HTTP 状态代码 405。

我在 Stackoverflow 上阅读了多个答案,大多数人似乎建议向 Chrome 添加一个插件,但这对于将使用重新验证码来验证联系表单的用户来说并不是一个解决方案。

这是我的服务器配置错误还是我的 Angular 脚本遗漏了什么?我已经确保在我的 re-captcha 帐户中配置了我的域。

sea*_*ght 6

ReCaptcha 在服务器端验证,而不是在客户端验证。该CORS错误是由于这样的事实和ReCaptcha API并不意味着通过浏览器来使用。

您需要将您的 recaptcha 数据发送到您的 API/服务器,然后通过向 ReCaptcha API 发送请求来验证它是否正确。当服务器相互发出 HTTP 请求时,没有 CORS 限制。

请参阅此Tuts 教程,了解数据的实现和流是如何工作的