Sapui5 使用OData服务时加载资源失败

Sapui5 使用OData服务时加载资源失败,sapui5,sap-cloud-platform,sap-web-ide,Sapui5,Sap Cloud Platform,Sap Web Ide,你好comunnity我需要一些帮助,我的odata服务已经在运行,我有一个url如下: 这是我的配置,我想这是错的 manifest.json "dataSources": { "invoiceRemote": { "uri": "https://myclient:port/sap/opu/odata/SAP/servicename_SRV/", "type": "OData", "settings": { "odataVersion":

你好comunnity我需要一些帮助,我的odata服务已经在运行,我有一个url如下:

这是我的配置,我想这是错的

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(未授权)

未能加载$metadata?sap language=ES:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。响应的HTTP状态代码为401

这条线不好,

"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将正常工作

但是在WebIDE内部,这是不够的,因为如果您使用相对URL,SAP Cloud/WebIDE将理解您正在尝试访问云中的资源

这就是为什么您应该在UI5项目中添加/更改您的应用程序。如果你已经有了它,那就改变它吧。如果您的项目中还没有此文件,您可以通过右键单击项目名称并选择New>>HTML5 Application Descriptor轻松创建它。这将在项目的根目录中创建此文件。(通常位于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"
}
这告诉WebIDE将每个请求转发到指定目的下的不同系统


只有当您有一个将SAP Cloud帐户与SAP NetWeaver内部部署系统相链接的链接时,这才有效。

您当前的IDE是什么?您的浏览器将不允许您通过不在同一域和端口上运行的ajax连接到服务。有人叫它,你可以在那里找到很多材料。简而言之,您应该以某种方式将odata服务代理给本地主机。我使用感谢这是一个问题,另外两个是jorg说的“浏览器不允许您通过ajax连接到不在同一域和端口上运行的服务。它叫做CORS,您可以在那里找到大量资料。简而言之,您应该以某种方式将odata服务代理到您的本地主机。我使用caddy”以及我创建互动程序、lpd_cust和语义对象的方式