【问题标题】:Angular CLI Proxy conf is not working for POST requestAngular CLI 代理配置不适用于 POST 请求
【发布时间】:2023-04-03 15:31:01
【问题描述】:

在使用 proxy.conf 和 angular 5 时遇到问题。我正在尝试从在 localhost 上运行的 angular 应用程序访问 https 开发服务器(证书无效)。我拥有的代理非常适合 GET 请求。但是对于 POST 请求,它失败并出现以下错误

选项https://www.dev.xxxx.au/api/carg/v1/enquiry405 ()

无法加载https://www.dev.xxxx.au/api/carg/v1/enquiry:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:4455' 不允许访问。响应的 HTTP 状态代码为 405。

我知道 OPTIONS 在 POST 之前由浏览器调用,但找不到使其工作的方法。

以下是我的代理配置

{
  "/api": {
    "target": "https://www.dev.xxxxx.au",
    "secure": false,
    "changeOrigin": true,
    "logLevel": "debug",
    "pathRewrite": {
      "^/api/carg/v1/enquiry": "https://www.dev.xxxx.au/api/enquiry"
    }
  }
}

尝试了很多组合,但无法成功。有什么想法...?

【问题讨论】:

  • 听起来你使用 HttpClient 的 Angular 服务指向dev.carers.healthdirect.org.au/api/carg/v1/enquiry,而不是使用相对路径:'/api/enquiry'。你能分享你的角度代码吗?
  • 嘿@LucasTétreault,感谢您的及时回复。不幸的是,我只能在星期一分享代码 sn-p。
  • Okie dokie。我会等着????
  • 嗨@LucasTétreault,感谢您指出我的错误。就像你说的,我指的是 HttpClient 中的绝对 url。我已经纠正了它,它工作顺利。 :)

标签: angular proxy cors


【解决方案1】:

正如@LucasTétreault 指出的那样,问题在于 HttpClient 指向的是绝对 url(我的错)。

 this.url = environment.CHS_BASE_URL;
 let path = '/api/carg/v1/enquiry';
 this.url = this.url + path;
 return this.httpClient.post<EnquiryResponse>(this.url,request, config);

纠正如下,它工作顺利

//this.url = environment.CHS_BASE_URL;
 let path = '/api/carg/v1/enquiry';
 //this.url = this.url + path;
 return this.httpClient.post<EnquiryResponse>(path,request, config);

【讨论】:

    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 2020-05-19
    • 2015-04-08
    • 2022-07-08
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    相关资源
    最近更新 更多