当使用带有角度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"
}
}
}
尝试了很多组合,但无法使其发挥作用。任何想法......?
答案 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);