Angular CLI Proxy conf不适用于POST请求

时间:2018-02-23 05:11:51

标签: angular proxy cors

当使用带有角度5的 proxy.conf 时,我遇到了一个问题。我试图从localhost上运行的角度应用程序中点击https dev服务器(包含无效证书)。我的代理正在为GET请求工作。但对于POST请求失败并出现以下错误

  

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

     

无法加载https://www.dev.xxxx.au/api/carg/v1/enquiry:对预检请求的响应未通过访问控制检查:否' Access-Control-Allow-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"
    }
  }
}

尝试了很多组合,但无法使其发挥作用。任何想法......?

1 个答案:

答案 0 :(得分:0)

正如@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);