Angular 如何解决;CORS策略:对飞行前请求的响应不';t通过访问控制检查。”;不添加浏览器插件

Angular 如何解决;CORS策略:对飞行前请求的响应不';t通过访问控制检查。”;不添加浏览器插件,angular,http,Angular,Http,我知道这个问题经常被问到,而且与其他问题100%重复。我尝试了其中定义的解决方案,但它们对我不起作用。因此,请看我的问题,并在这里帮助我 我正试图在urlhttps://www.webwork-tracker.com/rest-api/reports/full-data?start_date=2020-06-22&end_date=2020-06-22来自我的本地电话,该电话在http://localhost:4500。我已经定义了proxy.confs.json,并在其中包含了以下几行内容:

我知道这个问题经常被问到,而且与其他问题100%重复。我尝试了其中定义的解决方案,但它们对我不起作用。因此,请看我的问题,并在这里帮助我

我正试图在url
https://www.webwork-tracker.com/rest-api/reports/full-data?start_date=2020-06-22&end_date=2020-06-22
来自我的本地电话,该电话在
http://localhost:4500
。我已经定义了
proxy.confs.json
,并在其中包含了以下几行内容:

"/rest-api" : {
"target" : "https://www.webwork-tracker.com",
"secure" : false
}
我通过以下方式调用url:

const username = 'user@gmail.com';
const password = 'userPassword';
const headers = new HttpHeaders({ Authorization: 'Basic ' + btoa(username + ':' + password)});
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json');
return this.http.get<any>('https://www.webwork-tracker.com/rest-api/reports/' +
  'full-data?start_date=2020-06-22&end_date=2020-06-22', {headers});
const username='0user@gmail.com';
const password='userPassword';
const headers=new-HttpHeaders({Authorization:'Basic'+btoa(username+':'+password)});
headers.append('Content-Type','application/json');
headers.append('Accept','application/json');
返回此.http.get('https://www.webwork-tracker.com/rest-api/reports/' +
“完整数据?开始日期=2020-06-22和结束日期=2020-06-22”,{headers});
我想在不添加任何浏览器插件的情况下解决这个问题,而且我没有访问后端服务器的权限。所以,我找到的解决方案是添加代理。但我仍然得到以下错误

访问位于“”的XMLHttpRequesthttps://www.webwork-tracker.com/rest-api/reports/full-data?start_date=2020-06-22和结束日期=2020-06-22“从原点开始”http://localhost:4500'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在'access control Allow Origin'标头


API调用在
POSTMAN
中运行良好。我知道浏览器在发送get请求之前也会检查同一来源。代理帮我解决了这个问题。有人能帮我解决这个问题吗?

在您的服务中,您需要调用一个相对url,然后它将被代理

return this.http.get<any>('/rest-api/reports/' + ...)
其他要点:

确保代理文件
proxy.conf.json
angular.json
中的名称匹配(
confs
vs
conf

另外,
HttpHeaders
是不可变的,因此您的
headers.append
调用将无效(但您无论如何都不需要它们)


您是否允许服务器上的cors?我没有访问服务器的权限。您需要允许服务器上的cors,然后只有此问题才能得到解决。您需要在服务器文件中添加代码,如res.setHeader(“access Control allow Origin”(“access Control allow Origin”),“*”),这取决于您使用的服务器类型,但它与邮递员配合良好?只有浏览器存在此问题
"/rest-api" : {
"target" : "https://www.webwork-tracker.com",
 ...
 changeOrigin: true
}
const headers = new HttpHeaders({ Authorization: 'Basic ' + btoa(username + ':' + password)});
headers.append('Content-Type', 'application/json'); //no effect
headers.append('Accept', 'application/json');