如何处理使用 SAP UI5 消费真实的 OData 服务时遇到的跨域问题

举报
汪子熙 发表于 2022/06/11 09:56:56 2022/06/11
【摘要】 我本地开发了一个 SAP UI5 应用,消费真实的 OData 服务:https://services.odata.org/Northwind/Northwind.svc会遇到跨域问题错误:CORS errorAccess to XMLHttpRequest at ‘https://services.odata.org/Northwind/Northwind.svc/$metadata?sa...

我本地开发了一个 SAP UI5 应用,消费真实的 OData 服务:

https://services.odata.org/Northwind/Northwind.svc

会遇到跨域问题错误:CORS error

Access to XMLHttpRequest at ‘https://services.odata.org/Northwind/Northwind.svc/$metadata?sap-language=EN’ from origin ‘http://localhost:3002’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: It does not have HTTP ok status.

因为 https://services.odata.org/Northwind/Northwind.svc 这个 OData 服务不是我们自行实现的,我们无法更改其实现端,添加 CORS policy 相关的协议字段,因此只能想其他办法。

出于开发目的,我们可以暂时禁掉 Chrome 的安全检查,来绕过这个错误。

新建一个批处理文件,输入下列内容:

cd C:\Program Files (x86)\Google\Chrome\Application
chrome.exe --user-data-dir="C:/temp" --disable-web-security

此时启动的 Chrome,会显示一行警告信息:

You are using an unsupported command-line flag: --disable-web-security. Stability and security will suffer.

此时请求 OData 元数据,不再有跨域错误了:

根据Kitten编程猫社区的这个帖子:

https://shequ.codemao.cn/community/367019

  1. 产生的不是可执行文件或者源码,产生的是配置文件,告诉执行文件的框架该怎么做的配置文件。

  2. 必须依赖编程猫软件,可以在网上下载编程猫格式工厂来把bcm文件转为exe文件。

  3. 不能直接转换成安卓的apk文件。
    可以参照这个帖子:

https://shequ.codemao.cn/community/167969
但可以通过 Kitten 格式工厂这个软件,将 bcm 转换成 Windows10 平台下可以直接执行的exe文件:

选择 bcm文件后,点击 一键转换即可:

转换成功之后的 .exe文件:

可以执行双击,在windows平台上运行应用了:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。