fetch - 上下文代理预检选项请求
问题描述
我正在尝试从浏览器向 Context Broker 实例发出 GET 请求。
我在-corsOrigin __ALL
启动应用程序时使用该标志在 CB 上启用了 CORS,我可以通过在 POSTMAN 中发出请求并在响应中看到此标头来看到这已经奏效:access-control-allow-origin →*
.
我需要在我的 GET 请求中指定 Fiware-Service 标头以获取正确的实体,我认为这会使请求变得不简单,从而触发 OPTIONS HTTP 请求。
检查传出请求时,Chrome 报告已发送以下标头:
Access-Control-Request-Headers: fiware-service
Access-Control-Request-Method: GET
我从 Context Broker 得到的响应是:
Request URL: http://xxx.xxx.xxx.xxx:1026/v2/entities/
Request Method: OPTIONS
Status Code: 405 Method Not Allowed
McMutton先前对类似问题的回答说:
“对您的 js 代码进行必要的更改,以确保您的请求属于简单请求的范围。”
旨在从请求中删除非标准标头。但是,对我来说,我看不到任何非标准标头正在发送。
阅读有关 Access-Control-Allow-Headers 的 Fiware 文档,有一个指向指定允许标头的源代码的链接。在那里,我可以看到定义的 Fiware-Service 标头,但它与从浏览器发送的标头大小写不匹配(浏览器已将我的标头转换为全部小写)。
有谁知道上下文代理中的“标头检查”是否区分大小写?
如果不是,还有什么问题?
编辑:这里似乎已经报告了这个问题: https ://github.com/telefonicaid/fiware-orion/issues/3453
解决方案
根据对相关 github 问题的讨论,问题似乎是由于 Context Broker 相当旧(版本 1.7.0),并且该功能尚未在该版本中开发。
解决方案是将 Context Broker 更新到最新版本(目前为 2.2.0)。
推荐阅读
- erlang - 每个主管有多少工人?
- python - SyntaxError:名称“y”在全局变量之前使用
- arrays - 使用包含指令填充数组
- docker - 如何通过 SSH 将本地 Api docker-compose 项目部署到远程主机?
- python - 为什么 epoch 2 的时间是 epoch 1 的 18 倍?
- pdf - How to append PDF using itext 5
- java - Broadcast receiver needs Wifi in each receive.Is it safe to use wifi lock and wake lock on each receive?
- php - How to add ~/.composer/vendor/bin to $Path?
- c++ - Undefined reference with inline function c++
- wireless - How does a UE(User Equipment) find DC carrier to find the central frequency in order to decode PSS and SSS?