Hello comunnity我需要一些帮助,我的odata服务已经运行了,我有一个这样的网址:
https://myclient:port/sap/opu/odata/SAP/servicename_SRV/MaterialListSet
这是我的配置:
的manifest.json
"dataSources": {
"invoiceRemote": {
"uri": "https://myclient:port/sap/opu/odata/SAP/servicename_SRV/",
"type": "OData",
"settings": {
"odataVersion": "2.0"
}
}
}
.
.
.
"models": {
...
"invoice": {
"dataSource": "invoiceRemote"
}
}
它确定这个配置????因为我得到了这两个错误:
无法加载资源:服务器响应状态为401(未授权)
和
无法加载https://client:port/sap/opu/odata/SAP/odata_SRV/ $元数据?sap-language = ES:对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:port”访问。响应的HTTP状态代码为401。
答案 0 :(得分:1)
这条线不好;
"uri": "https://myclient:port/sap/opu/odata/SAP/servicename_SRV/",
这是因为您必须使用相对URL,因此它应该是
"uri": "/sap/opu/odata/SAP/servicename_SRV/",
背后的原因很简单:您的客户肯定有多个SAP Gateway / Fiori系统。因此,您不应该对开发或生产系统的域进行硬编码。
假设您最终将UI5应用程序部署到SAP NetWeaver系统,那么该系统将包含oData服务和UI5应用程序。由于它们将托管在同一台服务器中,因此相对URL工作正常。
然而,在Web IDE中,这还不够,因为如果您使用相对URL而不是SAP Cloud / Web IDE将了解您正在尝试访问云中的资源。
这就是您应该在UI5项目中添加/更改neo-app.json file的原因。如果你已经拥有它而不仅仅是改变它。如果您的项目中还没有此文件,可以通过右键单击项目名称并选择 New>>轻松创建该文件。 HTML5应用程序描述符。这将在项目的根目录中创建此文件。 (通常存在于webapp文件夹之外)。
最后,你必须在这个neo-app.json文件中添加一个路由,就像这个
一样{
"path": "/sap/opu/odata",
"target": {
"type": "destination",
"name": "NAME_OF_YOUR_SAP_CLOUD_DESTINATION",
"entryPath": "/sap/opu/odata"
},
"description": "SAP Gateway System"
}
这告诉Web IDE在指定的destionation下将每个请求转发到另一个系统。
仅当您将SAP Cloud帐户与SAP NetWeaver内部部署系统相关联SAP Cloud Connector时,此功能才有效。