提问人:Tim Cashmore 提问时间:10/21/2023 更新时间:10/24/2023 访问量:119
通过 REST API 的 SAPUI5 JSON 模型 - 在 xs-app.json / BTP 中使用 DESTINATION 无法正确解析
SAPUI5 JSON Model via REST API - Using DESTINATION in xs-app.json / BTP does not resolve Correctly
问:
创建对 REST API 的调用,以加载要绑定到视图/控制器的 JSON 模型。使用托管应用程序路由器创建自由式 Fiori 应用程序
- 在视图控制器的 oninit 函数中,尝试加载要绑定到视图的 JSON 模型
例如 (new JSONModel()).loadData(“/Products”);注意:完整 URL 为 = https://dummyjson.com/Products)
xs-app.json条目如下 { “source”: “^/产品”, “destination”: “APITEST”, “authenticationType”: “xsuaa”, “csrfProtection”:假 },
BTP 中配置了无身份验证且 URL = https://dummyjson.com/ 的 APITEST 目标
HTML5 应用部署到 BTP Cloud Foundry
单击 BTP Cockpit HTML5 应用列表中的应用程序时出现 404 错误。但是,如果我将步骤 1 更改为将前缀 /Products 删除为 Products,它会正确解析。例如
(new JSONModel()).loadData(“Products”) 很好。但更复杂的是,当我将应用程序部署到 Build App 启动板时,它停止工作!铌。我已经尝试了启动板的两种变体,但它不适用于前导/或不使用。
关于我如何错误地配置文件以解决此问题的任何指示。
在这种情况下(没有启动板)并在相对 URL 中使用“产品”,当我通过 Chrome 中的开发人员工具查看“网络”时,解析的 URL 将应用程序名称作为通过目标服务访问的 URL 的一部分
答:
意识到在使用以下实用程序在 JSON 模型上调用 loadData() 方法时,您需要正确地为 URL 添加前缀
sap.ui.require.toUrl(appPath+“/Products”)。
var appId = this.getOwnerComponent().getManifestEntry(“/sap.app/id”); var appPath = appId.replaceAll(“.”, “/”);
摘自以下博客,但使用 sap.ui.require.toUrl 作为 getModulePath 现已弃用。
评论