固件错误:Access-Control-Allow-Origin

2023-12-05

我正在调用 contextBroker,它给了我这个错误。

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. The response had HTTP status code 405.

从邮递员或干舷我没有得到任何这些。

  getContextBroker(){
    console.log("Consumimos el servicio getContextBroker");
    let headers = new Headers ({'Accept': 'application/json', 'Fiware-Service': 'x', 'Fiware-ServicePath': '/x', 'Access-Control-Allow-Origin': '*'});
    let options = new RequestOptions ({headers : headers});
    return this._http.get(this.urlcontextBrokers, {headers : headers}).map(res => res.json());
  }

}

我该如何解决这个问题?

我尝试添加: 'Access-Control-Allow-Origin': '*'

但还是不行

EDIT:

ps 斧头 | grep contextBroker:

 862 pts/4    S+     0:00 grep contextBroker
 3792 ?        Ssl   27:35 /usr/bin/contextBroker -port 1026 -logDir /var/log/contextBroker -pidpath /var/run/contextBroker/contextBroker.pid -dbhost localhost -db orion -multiservice -logAppend

version:

{
    "orion": {
        "version": "1.7.0",
        "uptime": "12 d, 18 h, 24 m, 20 s",
        "git_hash": "e544780eb64a4a2557c1f51dde070b8d82b86c49",
        "compile_time": "Wed Feb 8 13:30:24 CET 2017",
        "compiled_by": "fermin",
        "compiled_in": "centollo"
    }
}

EDIT02

您好,正如我所说,我不想使用 cors,我已通过以下方式从标头中消除了它:

   getContextBroker () {
     console.log ("We consume the getContextBroker service");
     let headers = new Headers ({'Accept': 'application / json', 'Fiware-Service': 'IoFAlmeria', 'Fiware-ServicePath': '/ ARMpalmerillas'});
     let options = new RequestOptions ({headers: headers});
     return this._http.get (this.urlcontextBrokers, {headers: headers}). map (res => res.json ());
   }

}

我一直给出同样的错误:

OPTIONS http: // XXX: 1026 / v2 / entities / 405 (Method Not Allowed)
Failed to load http: // XXX: 1026 / v2 / entities /: Response to preflight request does not pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http: // localhost: 4200' is therefore not allowed access. The response had HTTP status code 405.

这一定是固件API的问题,因为我用nodejs设计了一个,并且更改URL没有问题

Update:

Limpiando repositorios:base epel extras fiware mongodb-org-3.2
                     : mysql-connectors-community mysql-tools-community
                     : mysql57-community nodesource updates
Limpiando todo
Cleaning up list of fastest mirrors
[root@UAL-IoF2020 ~]# yum install contextBroker
Complementos cargados:fastestmirror, refresh-packagekit, security
Configurando el proceso de instalación
Determining fastest mirrors
epel/metalink                                            |  25 kB     00:00     
 * base: ftp.uma.es
 * epel: ftp.uma.es
 * extras: ftp.uma.es
 * updates: ftp.uma.es
base                                                     | 3.7 kB     00:00     
base/primary_db                                          | 4.7 MB     00:00     
epel                                                     | 4.7 kB     00:00     
epel/primary_db                                          | 6.0 MB     00:00     
extras                                                   | 3.4 kB     00:00     
extras/primary_db                                        |  29 kB     00:00     
fiware                                                   |  951 B     00:00     
fiware/primary                                           |  45 kB     00:00     
mongodb-org-3.2                                          | 2.5 kB     00:00     
mongodb-org-3.2/primary_db                               |  78 kB     00:00     
mysql-connectors-community                               | 2.5 kB     00:00     
mysql-connectors-community/primary_db                    |  18 kB     00:00     
mysql-tools-community                                    | 2.5 kB     00:00     
mysql-tools-community/primary_db                         |  38 kB     00:00     
mysql57-community                                        | 2.5 kB     00:00     
mysql57-community/primary_db                             | 139 kB     00:00     
nodesource                                               | 2.5 kB     00:00     
nodesource/primary_db                                    |  51 kB     00:00     
updates                                                  | 3.4 kB     00:00     
updates/primary_db                                       | 6.4 MB     00:00     
El paquete contextBroker-1.7.0-1.x86_64 ya se encuentra instalado con su versión más reciente
Nada para hacer

CORS 请求仅受 Orion Context Broker 版本 1.10 及更高版本支持。

正如 @JoseManuelCantera 所指出的,您不需要在请求中添加任何 CORS 特定标头,这些标头由您的客户端(浏览器、Postman 等)处理。

你需要:

  1. 将您的版本升级到1.10
  2. 在 CORS 模式下启动 Orion

您可以在任何来源的 CORS 模式下启动 Orion(Orion 将接受来自任何来源的 CORS 请求),如下所示:

contextBroker -corsOrigin __ALL

请看一下Orion 的 CORS 文档了解更多信息。

UPDATE

请允许我简单解释一下 CORS飞行前逻辑。如果您的请求不是简单的请求,您的浏览器将执行飞行前请求在你的 OPTIONS 方法之前。如果 Orion 未在 CORS 模式下启动,您将始终得到方法不允许作为对您不简单请求的回应。

那么什么是problem,为什么不同的客户会得到不同的结果? Postman(curl 等)完全按照您希望的方式执行,并按照您的配置发送请求。它不会检查您发送的请求是否应该进行预检。

另一方面,您的浏览器会检查您的请求并在必要时进行预检。你有无控制除了修改您的请求之外。

您正在使用的 Javascript 框架可能会向请求添加标头,使其成为“非简单”请求。例如:X-Requested-With。请参见this问题。

我的建议是查看浏览器发送的请求的详细信息(标头、方法等),看看是什么使它成为一个不简单的请求。然后对您的 js 代码进行必要的更改,以确保您的请求属于简单请求的范围。

话虽如此,您最终需要升级您的 Orion 版本,因为例如 DELETE 请求是never通过浏览器发送时将被视为简单请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

固件错误:Access-Control-Allow-Origin 的相关文章

  • 按 Orion Context Broker 0.23.0 中的属性值过滤

    在当前版本的 Orion Context Broker 0 23 0 中 新增功能之一是支持根据属性值过滤实体 NGSI v2 我当前正在执行 GET 操作 如所示http telefonicaid github io fiware ori
  • 我的 Hive 客户端停止使用 Cosmos 实例

    我有一个 Hive 客户端 用 Java 编写 它与 FIWARE 实验室的 Cosmos 全局实例配合得很好 但是 它不再工作了 客户端似乎无法连接 超时 服务器端有什么变化吗 这是因为 FIWARE Lab 的 Cosmos 全局实例已
  • 固件 Orion 上下文代理订阅条件不起作用

    我正在使用 Orion Context Broker 版本 1 1 0 我的数据库中有唯一的实体 id gt Room1 type gt Room temperature gt type gt none value gt 10 metada
  • 紧急安装并与 Orion Context Broker 集成

    在 Rush 中运行监听器和一次消费者之后 我运行 contextBroker rush localhost 5001 我确保使用 Orion 0 17 而不是 0 14 输入 version url 后显示的是
  • Orion API 通过 Keycloak 进行身份验证

    我想通过 Keycloak IdM 在 Orion API 上添加身份验证 我知道可以将 Orion 与 Pep Proxy Wilma 和 Keyrock 一起使用来完成此任务 并且可能的解决方法是将 keyrock 与 keycloak
  • Orion 的配置管理器与 PubSub Broker

    查看 FIWARE 目录 我看到 Orion Context 的两个条目 经纪人 一个名为 发布 订阅代理 还有另一个 为了 配置管理器 So 为什么有两个条目 它们对应的是同一个软件吗 我什么时候应该使用发布 订阅代理以及什么时候我应该使
  • 通过 yum 安装 Fiware-Cygnus 时出错

    我正在尝试通过 yum 安装 Fireware Cygnus yum install cygnus ngsi 但中间我遇到了一些错误 Transaction Check Error file usr cygnus init d cygnus
  • 如何使用 Orion 在传出通知中添加自定义标头?

    我阅读了 自定义通知 部分NGSv2 规范我仍然对如何进行这项工作存有疑问 我是否必须将以下代码作为有效负载放入订阅 POST 中 httpCustom url http foo com entity id headers Content
  • 如何使 rush 与我的 orionInstance 一起工作

    按照我之前的问题如何在 MapViewer 小部件中显示来自 OrionContextBroker 的实体我使用 Rush 配置了我的上下文代理实例 并且正在使用https ngsiproxy lab fi ware org作为 NGSI
  • 如何在FIWARE中达到安全级别3?

    我正在我的计算机中部署 FIWARE 安全 GE 即 Wilma AuthzForce Keyrock 安全级别 2 基本授权 运行良好 但现在我需要使用 XACML 的安全级别 3 高级授权 长话短说 我想要一个实现安全级别3的教程 但是
  • Perseo fe docker 实例无法启动

    我面临以下问题 我正在尝试将 FIWARE Perseo 作为 docker 实例部署到我的 Centos 7 服务器 尽管 perseocore 实例运行没有问题 但 perseo 前端的情况却不同 它已创建但无法启动 从日志中可以清楚地
  • 如何配置系统以使用 FIWARE yum 存储库?

    我知道 FI WARE 提供了一个公共 yum 存储库 位于http repositories testbed fiware org http repositories testbed fiware org 可用于安装 FI WARE 软件
  • 从 Keyrock 固件 API 获取 Auth-Token

    我在我的笔记本电脑上的 docker 本地运行 Keyrock Fiware 我知道这有效 因为我可以访问http localhost 8000 and http localhost 8000 sign up通过我的浏览器 他们响应正确 我
  • 固件:配置 orion 上下文代理端口

    我在用着Orion 上下文代理 http catalogue fi ware org enablers publishsubscribe context broker orion context broker但默认端口在我的组织中无效 防火
  • 创建虚拟机实例后如何扩展默认分区? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我使用 FI WARE 云创建了一个具有 12GB 磁盘的 Centos x64 VM 实例 我可以毫无问题地访问它 并且我已经开始安装软
  • FILAB VM 与 Cosmos 全局实例之间的连接问题

    我遇到了问题中讨论的相同类型的连接问题 Cygnus 无法在 Cosmos 全局实例上保留数据 https stackoverflow com questions 33674713 cygnus can not persist data o
  • 自动创建 Cosmos 上的 Hive 表

    我有一个 Orion 上下文代理 我使用 cygnus 0 6 将数据发送到我的 Cosmos 帐户 Cygnus 使用我的 Cosmos 上的数据正确创建了 txt 文件 但它没有创建 hive 的表 我会通过 Hive 客户端查询我的数
  • 为什么 Orion 订阅不能按我的意愿工作?

    我在 orion 1 2 1 中有以下订阅 curl include header Content Type application json request POST data binary description subscriptio
  • 发布后订阅状态发生变化

    成功安装 Cygnus 连接器并测试订阅的创建后 具有以下文件 agent 1 conf cygnus ngsi sources http source cygnus ngsi sinks hdfs sink cygnus ngsi cha
  • 通过 MQTT 将 LoRa 测量结果发送到 Fiware IOT 代理

    我有 LoRa 传感器 它使用 Cayenne LPP 格式有效负载发送测量值 我的网关 LOrank8v1 捕获这些数据包并将其转换为 UDP 网关中有一个服务 lora gateway bridge 它将数据包从 UDP 转换为 TCP

随机推荐

  • store.filter() 未按预期工作 ember.js (尝试搜索模型)

    我正在尝试在这里实现一个搜索系统 但在 store filter 方面遇到了一些问题 首先我找不到任何好的文档store filter 除了这里之外的方法 http emberjs com guides models frequently
  • MinGW / CxxTest 奇怪的错误

    我希望你可以帮助我 我在我的主开发机器上使用 CxxTest 编写了一个小项目 这台机器上的一切都运行良好 没有任何问题 然而 我尝试在我的全新笔记本电脑上设置这个项目 但无法让它工作 我怀疑我的 MinGW 安装而不是 CxxTest 出
  • 模板编程:对重载函数的不明确调用

    我正在实现排序算法作为个人训练 没有作业 我有以下代码 不包括导入等 template
  • 检索实体框架中的存储过程输出参数始终为空

    C code public List
  • 为什么按值参数被排除在 NRVO 之外?

    Imagine S f S a return a 为什么不允许别名a和返回值槽 S s f t S s t can t generally transform it to this 如果以下情况的复制构造函数 规范不允许进行此转换 S有副作
  • 如何使用flexbox制作垂直列表2列[重复]

    这个问题在这里已经有答案了 我尝试使用 Flexbox 制作 2 列列表和垂直顺序 ul li item 1 li li item 2 li li item 3 li li item 4 li li item 5 li li item 6
  • Gstreamer:gst_element_factory_make():总是失败并返回 NULL:Qt5

    我的问题是 我无法创建 Gstreamer 元素 我正在创造Gstreamer项目使用Qt 5 2 1 我在做什么 gst init NULL NULL GstElement m pipeline gst pipeline new pipe
  • 如何使用java访问远程mysql数据库

    我已经开发了一个JAVA SWING应用程序 我想将此应用程序安装在几台电脑其中所有可以访问互联网 那么我应该把 MYSQL 数据库放在哪里呢 所有这些计算机应该有能力通过互联网访问同一数据库 出于安全 身份验证授权 加密 和性能原因 允许
  • 使用 EXEC 的结果创建新表

    我正在尝试获取结果EXEC查询并将它们放入我的 SQL Server 2017 数据库中的表中 我知道以前也有人问过类似的问题here here and here 但我还没有找到有效的解决方案 The EXEC查询本身运行得很好 并且结果正
  • 从大数据帧中采样小数据帧

    我试图从给定的数据帧中对数据帧进行采样 以便变量的每个级别都有足够的样本 这可以通过按级别分离数据帧并从每个级别中分离样本来实现 我想ddply 数据帧到数据帧 会为我做到这一点 举一个最简单的例子 set seed 1 data1 lt
  • 编解码器无法解码字节 0x81

    我有一段简单的代码 file open filename r encoding utf 8 num lines sum 1 for line in open filename 我只是想获取文件中的行数 但是我不断收到此错误 我正在考虑跳过
  • 干净的 XML 序列化分层、递归数据结构

    我有这门课 XmlRoot menuItem public class MenuItem XmlAttribute text public string Text get set XmlAttribute isLink public boo
  • 如何从QTableView中获取选定的行号?

    我是 QT 新手 我在用FrozenTabelWidget它源自于QTableView 如何获取选定的行号 如果索引发生变化 用户单击任何单元格 那么我需要获取该单元格行号 我的代码如下 freezetablewidget cpp incl
  • MVC4 / DotNetOpenAuth 中的自定义 OAuth 客户端 - 缺少访问令牌密钥

    我目前正在为我的应用程序实现 Dropbox OAuth 客户端 这是一个相当轻松的过程 直到我到达终点 授权后 当我尝试访问用户数据时 我会从 Dropbox 收到关于令牌无效的 401 消息 我在 Dropbox 论坛上询问 看起来我的
  • MySQL - 删除时外键在非空字段中设置为空

    这可能是一个微不足道的问题 但在外键约束方面我仍然有点笨拙 所以我想确定一下 假设我有一张桌子countries与田野country id PK 和name 和一张桌子cities与田野city id PK name and country
  • 同时移动2个表格

    我在这里有点卡住了 我试图同时移动 2 个表单 而不使用 OnMove LocationChanged Docking 等 与它们的位置交互的唯一方法是重写 WndProc 可能有帮助的是 表单 A 是表单 B 的所有者 因此 每当移动 A
  • 如何终止 PHP 会话?

    我正在编写一个社交网站 并且正在尝试找出 PHP 会话 在登录页面的顶部 我调用session destroy 在新用户正式注册为用户的页面和用户主页 我调用session start 当用户注销时 他们会链接到具有 session des
  • Reporting Services 将多个工作表导出到 Excel

    我目前正在构建一个 MS Reporting Services 报告 该报告可呈现为 Excel 我试图弄清楚如何设置报告 以便它在报告上创建数据的多个工作表 选项卡 据我所知 在报告中输入分页符会为您提供一个新的工作表 但是 有没有办法命
  • Javascript Array.prototype.filter() 不起作用

    我在客户端上运行这段代码来过滤事件列表 if res eventList filter function event const out res find function visibility return visibility ID e
  • 固件错误:Access-Control-Allow-Origin

    我正在调用 contextBroker 它给了我这个错误 Response to preflight request doesn t pass access control check No Access Control Allow Ori