我有一个使用Angular 4 Http服务调用Bing地图的现有代码,目前它可以正常工作:
this.http.get("{absolute URL of Bing Maps REST Locations, with options and key}")
我正在尝试使用Angular 4.3引入的HttpClient服务更改调用方式,但是当我尝试相同的代码时:
this.httpClient.get("{absolute URL of Bing Maps REST Locations, with options and key}")
然后使用预检OPTIONS请求发送请求,但必应地图显然会拒绝它。
我尝试观察请求而不是正文,请求文本响应,并强制接受标头为文本,但没有成功。
HTTP请求的标头(有效):
Accept: application/json, text/plain, */*
Origin: http://localhost:4200
Referer: http://localhost:4200/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
HttpClient请求的标题(不工作):
Access-Control-Request-Headers: authorization
Access-Control-Request-Method: GET
Origin: http://localhost:4200
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
任何关于为什么HttpClient请求与Http请求如此不同的想法?我该如何强制HttpClient跳过预检OPTIONS请求?我有遗漏吗?
提前感谢您的任何帮助。
".../Locations ...
,不知道前三个点代表什么!顺便问一下,你有CORS插件或类似的东西激活了吗? - imans77