首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这里,Geocoder支持

这里,Geocoder支持
EN

Stack Overflow用户
提问于 2019-08-14 10:23:38
回答 1查看 600关注 0票数 1

我使用角8 HttpClient向地理编码器API发出GET请求。但是,由于CORS飞行前请求失败,浏览器阻止了该请求。

CORS策略阻止了来自“CODE]&country=hkg&language=en-GB&searchtext=royal%20view%20hotel”的对CODE]&country=hkg&language=en-GB&searchtext=royal%20view%20hotel的访问:对飞行前请求的响应不通过访问控制检查:它没有HTTP状态。

(出于明显的原因,我的实际应用程序id应用程序代码在上面的消息中被APP_ID和APP_CODE替换了)

据我所知(在阅读了https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS之后),飞行前请求是作为OPTIONS请求由浏览器发送的。并且浏览器失败了来自HERE API服务器的(飞行前)响应,因此阻塞了最初的GET请求。

这是否是这里API服务器不正确地响应飞行前选项请求的问题?

如果是这样的话,会有人建议一个好的方法来模拟飞行前的请求,从这里来检查响应API吗?

更新-模拟飞行前请求

我试图模拟一个来自邮递员的飞行前请求,以查看这里的API服务器是如何响应的。

请求详细信息如下。

请求类型:OPTIONS

网址:https://geocoder.api.here.com/6.2/geocode.json

头旁:

访问-控制-请求-方法:获取 访问-控制-请求-标头:源,x-请求-与 产地:http://localhost:4201

对上述请求的答复。

状态:404

回应机构:

代码语言:javascript
复制
<ns2:Error xmlns:ns2="http://www.navteq.com/lbsp/Errors/1" type="PermissionError" subtype="InvalidCredentials">
    <Details>invalid credentials for </Details>
</ns2:Error>

如果我试图将查询参数包含到URL中(包括app_id和app_code),如下所示:

https://geocoder.api.here.com/6.2/geocode.json?app view 酒店

返回相同的错误状态(404)。反应体看起来是这样的:

代码语言:javascript
复制
<ns2:Error xmlns:ns2="http://www.navteq.com/lbsp/Errors/1" type="PermissionError" subtype="InvalidCredentials">
    <Details>invalid credentials for XXXXXXXXXXXXX</Details>
</ns2:Error>

其中,XXXXXXXXXXXXX是我的app_id参数值。显然,这个值替代了我的实际app_id,它是有效的,在正常的GET请求中从Postman运行时返回结果。

除非我在模拟飞行前请求时遗漏了什么,否则这里的API服务器似乎没有正确地响应预飞请求。

如有任何帮助和建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 10:11:57

这里的Geocoder通常不支持OPTIONS方法,但是应该可以使用jsonp方法来解决CORS问题。非常确定角有一些支持jsonp的库,在这个线程中描述了一种方法:How to make a simple JSONP asynchronous request in Angular 2?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57492820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档