here-api - HERE-maps 自动完成的 CORS 问题
问题描述
我想在我的项目中使用 HERE 地图自动完成功能。但是当 ai 像文档中的那样发送请求时
this.axios.get('http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&query=Pariser+1+Berl
&beginHighlight=<b>
&endHighlight=</b>'
)
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
我收到一个错误
OPTIONS http://autocomplete.geocoder.api.here.com/6.2/suggest.json?{...} 405
Access to XMLHttpRequest at 'http://autocomplete.geocoder.api.here.com/6.2/suggest.json?{...}' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
在网络面板的 Chrome 开发者控制台中,我检查了这个
Provisional headers are shown
Access-Control-Request-Headers: x-auth-token, content-type
Access-Control-Request-Method: GET
我将请求标头中的内容类型设置为 application/json 并且临时标头已更改
to Access-Control-Request-Headers: x-auth-token
Access-Control-Request-Method: GET
所以如果我理解正确,我应该设置 x-auth-token 标头。但是我在哪里可以拿到这个令牌?或者可能是这个问题有其他原因?
文档中没有关于此类问题的内容。
解决方案
问题很简单,而且有点愚蠢。当用户在我的应用程序中进行身份验证时,我将默认标头添加到 axios
axios.defaults.headers.common['X-Auth-Token'] = token
所以这个头被发送到所有请求。
但是 HERE-map API 不希望在请求中使用此标头,这就是问题的原因。解决方案是从对 HERE-map API 的请求中删除此标头。
推荐阅读
- python-3.x - Mac:将 .exe 保存到 PATH 以获取 selenium Web 驱动程序
- javascript - Spring Security 阻止 js 发布查询以进行文件上传
- c# - 使用带有实体框架和 LINQ 的单个数据库查询来搜索多个字符串
- azure - 通过在查询 azure sql db tales 时强制创建顶点来优化 U-SQL
- php - 为什么那个sql请求需要这么长时间?
- c++ - 通过基类引用派生类后打印的错误值
- html - 试图将 hr 标签彼此靠近
- sql-server - SSDT 通函参考:复杂项目
- python - 如何在 OpenCV 中提取具有特定颜色的图像片段?
- java - 不支持的major.minor 52.0 版,带有用eclipse 构建的web 应用程序,服务器是tomcat 7