问题主要有两个问题:
申请代码
ODataModel
构造函数时,该字符串需要指向 OData 服务为服务 $metadata
文档提供服务的资源。因此,需要从字符串中删除Orders?$format=json
。
items="{odm1>/results}
替换为
items="{odm1>/Orders}
。
CORS 问题 *
公共演示代理服务器cors-anywhere.herokuapp.com
不再可以直接使用,除非先请求临时访问(请参阅相关公告)。 相反,请继续阅读文档主题
“由于同源策略导致请求失败(跨源资源共享 - CORS)”中的“解决方案”部分。展开与您的开发环境相对应的小节。
如果您在本地工作而未在 SAP BTP 中设置目的地:
ui5-middleware-simpleproxy
。这是带有中间件的示例 ui5.yaml
配置:https://github.com/boghyon/gitpod-ui5-basic/blob/main/ui5.yaml。请记住事先在终端中执行
npm install ui5-middleware-simpleproxy --save-dev
。要配置
ui5-middleware-simpleproxy
中的
ui5.yaml
以使用
odata.org
中的 Northwind 服务,您可以设置:
mountPath: /myODataService
configuration/baseUri: https://services.odata.org
new ODataModel("/myODataService/V2/Northwind/Northwind.svc"); // without .../Orders?$format=json
* 除OData V4 TripPin 服务外,odata.org
的服务目前不支持 CORS。要了解 CORS 的一般信息,请参阅同源策略和 CORS(跨源资源共享)。 如果服务不支持 CORS,服务可能会报告模糊的报告,
例如:
OPTIONS
发送预检请求,以查看服务器允许哪些类型的请求。
OPTIONS
请求。
"OPTIONS ... 501 (Not Implemented)"
。
odata.org
的
OData 服务维护不善、不完整,并且存在许多问题我已经在 https://github.com/OData/ODataSamples/issues?q=is%3Aissue+ 报告了其中一些问题作者%3Aboghyon.
odata.org
的服务也不支持生成CSRF令牌。在定义
tokenHandling: false
类的构造函数设置时添加
v2.ODataModel
:
new ODataModel({ // V2
serviceUrl: "/myMountOrDestinationPath/...",
preliminaryContext: true,
defaultBindingMode: "TwoWay",
tokenHandling: false, // prevents "HEAD ... 501 (Not Implemented)" from odata.org services
// ...
})
👉 不要参考 odata.org
的服务,请查看这篇博文,了解 SAP 维护的替代示例OData 服务: “新 SAP 网关演示系统可用”。