【问题标题】:Failed to load resource while consuming OData service使用 OData 服务时加载资源失败
【发布时间】:2018-08-08 20:44:49
【问题描述】:

大家好,我需要一些帮助,我的 odata 服务已经在运行,并且我有一个这样的网址:

https://myclient:port/sap/opu/odata/SAP/servicename_SRV/MaterialListSet

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

ma​​nifest.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/$metadata?sap-language=ES:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:port' 不允许访问。响应的 HTTP 状态代码为 401。

【问题讨论】:

  • 你目前的 IDE 是什么?
  • 您的浏览器不允许您通过不在同一域和端口上运行的 ajax 连接到服务。它被称为CORS,你可以在那里找到很多材料。简而言之,您应该以某种方式将 odata 服务代理到您的本地主机。我用caddy

标签: sapui5 sap-cloud-platform sap-web-ide


【解决方案1】:

这条线不好;

"uri": "https://myclient:port/sap/opu/odata/SAP/servicename_SRV/",

这是因为你必须使用相对网址,所以应该是

"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 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"
}

这告诉 Web IDE 将每个请求转发到指定目标下的不同系统。

这只有在您有一个SAP Cloud Connector 将您的 SAP Cloud 帐户与您的 SAP NetWeaver 本地系统链接时才有效。

【讨论】:

  • 感谢这是问题之一,另外两个正如 jorg 所说“浏览器不允许您通过不在同一域和端口上运行的 ajax 连接到服务。它被称为 CORS 和你可以在那里找到很多材料。简而言之,你应该以某种方式将 odata 服务代理到你的本地主机。我使用球童“以及我如何创建我的 tile、lpd_cust 和语义对象的方式
猜你喜欢
  • 2022-10-23
  • 2018-12-21
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
  • 2021-12-24
相关资源
最近更新 更多