当前位置: 首页 > 知识库问答 >
问题:

角度9:CORS策略阻止从源“http://localhost:4200”访问位于“xxx”的XMLHttpRequest

鲜于光赫
2023-03-14

在解析SiteKey后,我可以从re-captcha中获得响应。

我用我的响应和密钥向google recaptcha api做了一个手动post请求,它确实返回了我需要的结果,成功状态为true/false。

接下来,我尝试执行http,但它开始返回以下错误:

我尝试向我的angular添加一个代理conf,但是它不起作用。我在PHP上做了同样的应用程序,它工作了。我能知道有什么解决办法吗?

以下是我在angular中的代码

my-form.component.html

<div class="recaptcha">
    <re-captcha (resolved)="resolved($event)" siteKey="6LeD_K8ZAAAAAOAGZHqFwujgLXqLrTIoftoPzXWb"></re-captcha>
</div>

my-form.component.ts

import { Component, OnInit } from '@angular/core';

//My Imports
import { HttpClient, HttpParams } from '@angular/common/http';

@Component({
  selector: 'app-my-form',
  templateUrl: './my-form.component.html',
  styleUrls: ['./my-form.component.css']
})
export class MyFormComponent implements OnInit 
{
  constructor(private http: HttpClient) { }

  resolved(captchaResponse: string)
  {
    if(captchaResponse != null)
    {
      let params = new HttpParams()
      .set("secret", "i459wfj3n42rls939jfi3j9-")
      .set("response", captchaResponse);
      
      //THE ERROR OCCURS WHEN I POST.
      this.http.post("https://www.google.com/recaptcha/api/siteverify", { params })
      .subscribe((value:any)=> 
      {
        console.log(value);
      })
    }

  }

  ngOnInit(): void {
  }

}

src/proxy.conf.json

{
  "/api/*": {
      "target": "http://localhost:3000",
      "secure": false,
      "logLevel": "debug"
  }
}

Angular.json

    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "googlerecaptcha:build",
        "proxyConfig": "src/proxy.conf.json"

共有1个答案

黄磊
2023-03-14

您可以使用第三部分依赖关系:https://github.com/jameshenry/angull-google-recaptcha

也可以在angular应用程序中添加js脚本:https://w3path.com/how-to-integrate-recaptcha-in-Angular-8/

你不能使用代理。

 类似资料:
  • 交叉起源没有发生,被CORS策略阻止。 我使用的是Windows系统。 在文件中: 在文件中: 我在浏览器控制台中遇到此错误: CORS策略阻止了从http://localhost:1111/api/v1/employees/createhttp://localhost:4200对XMLHttpRequest的访问:对预飞行请求的响应没有通过权限改造检查:请求的资源上没有访问控制允许起源标头。<-

  • 请求标头如下所示: 临时头显示为access-control-request-headers:content-type access-control-request-method:POST origin:http://localhost:4200 referer:http://localhost:4200/login user-agent:mozilla/5.0(Macintosh;Intel M

  • 有一个应用程序在角7也有一个. net web api解决方案,当我调用一个动作CORS问题发生,错误如下 CORS策略阻止从http://localhost:57467/UserDetails/GetUserDetailshttp://localhost:4200访问XMLHttpRequest:对预试请求的响应不通过权限改造检查:请求的资源上不存在访问控制允许起源标头。 我试图使用Web ap

  • 我试图用javascript演示一个api调用,以获得Json结果。以下是我所做的: 但是当我运行它时,我得到了一个错误: CORS策略阻止从http://127.0.0.1:8080/activiti-rest/service/form/form-data?taskId=21159http://localhost访问XMLHttpRequest:对预试请求的响应不通过权限改造检查:请求的资源上不

  • 我有一个。NET核心应用程序,它有一个REST API被一个角客户机使用,但遇到了CORS问题。 但仍在客户端(运行在本地端口4200上)中获取错误: CORS策略阻止从来源“HTTP://localhost:4200”访问位于“HTTP://localhost/myapi/api/table”的XMLHttpRequest:对飞行前请求的响应没有通过访问控制检查:它没有HTTP ok状态。

  • 有点晚了,但我记得我最终通过在后端的配置中设置来解决这个问题。 完全偶然地,我注意到如果我在前端的客户端中设置,一切都正常工作。然而,将其切换到不断抛出错误。然后我把两个和两个放在一起,在后端设置,一切都按预期工作。 我的应用程序使用cookie,所以必须这样做。 这可能是重复的,但我没有找到与我的问题相关的线索。 我正在进行以下API调用: 这会引发一个错误: 当我将我的应用程序部署到Herok