加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

调用Bing Maps Locations REST方法时出现Angular HttpClient问题

发布时间:2020-12-17 07:12:05 所属栏目:安全 来源:网络整理
导读:我现在已经调用了使用Angular 4 Http服务制作的Bing Maps,它正常工作: this.http.get("{absolute URL of Bing Maps REST Locations,with options and key}") 我正在尝试更改调用以使用Angular 4.3中引入的HttpClient服务,但在尝试相同的代码时: this.httpC
我现在已经调用了使用Angular 4 Http服务制作的Bing Maps,它正常工作:

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请求一起发送,而bing map显然拒绝它.

我试图观察请求而不是正文,请求文本响应,并强制Accept标头文本,但没有成功.

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请求?我错过了什么吗?

在此先感谢您的帮助

解决方法

我终于找到了一个解决方案(虽然我没有发现为什么HttpClient在使用默认设置构建请求时与Http的行为有很大不同).

也可以使用jsonp调用参数调用Bing Maps V8 REST API:

let url = '...base url and query params...&key={MyBingMapsKey}&jsonp=JSONP_CALLBACK';
 this.httpClient.jsonp(url,'JSONP_CALLBACK');

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读