繁体   English   中英

如何将另一个 SAP Cloud 项目资源包含到已部署的 SAPUI5 应用程序中?

[英]How to include another SAP Cloud project resource into deployed SAPUI5 app?

我在 Eclipse 中创建了几个 SAPUI5 Web 应用程序,这些应用程序已部署到 SAP NetWeaver PO 7.5 应用程序服务器。

所有这些应用程序都使用“公共”项目的通用组件。 我只是通过带有此引导脚本标记的 html 标头使它们可用:

<!-- Bootstrapping UI5 -->
<script id="sap-ui-bootstrap"
        src="/sapui5/resources/sap-ui-cachebuster/sap-ui-core.js"
        data-sap-ui-libs="sap.m"
        data-sap-ui-theme="path.to.custom.theme"
        data-sap-ui-compatVersion="edge"
        data-sap-ui-resourceroots='{"com.namespace.ui.specificapp": ".", "com.namespace.ui.common" :"/com.namespace~ui~common~web"}'
        data-sap-ui-frameOptions="trusted"
        data-sap-ui-appCacheBuster = "./,/com.namespace~ui~common~web/" >
</script>

这一直很好,直到我分层将这些应用程序转移到 SAP Cloud。

我将项目导入到 WebIDE,我发现的第一件事是data-sap-ui-resourceroots属性不再起作用,因为应用程序无法从公共项目中找到组件。 因此,我将通用应用程序部署到 SAP Cloud 并在 index.html 的引导脚本标签中插入了相应的 URL,如下所示:

<script id="sap-ui-bootstrap"
    src="/sapui5/resources/sap-ui-cachebuster/sap-ui-core.js"
    data-sap-ui-libs="sap.m"
    data-sap-ui-theme="path.to.custom.theme"
    data-sap-ui-compatVersion="edge"
    data-sap-ui-resourceroots='{"com.namespace.ui.specificapp": ".", "com.namespace.ui.common" :"/https://common-aXXXXXXXX.dispatcher.hana.ondemand.com/"}'
    data-sap-ui-frameOptions="trusted"
    data-sap-ui-appCacheBuster = "./,/com.namespace~ui~common~web/" >

这允许浏览器从公共项目中查找 JS 文件,但会导致此错误:

注意:您的浏览器不支持 JavaScript 或已关闭。 按下按钮继续。

这是由https://common-aXXXXXXXX.dispatcher.hana.ondemand.com/主机抛出的消息。

分析 HTTP 请求,我看到参数Accept:text/plain, */*; q=0.01 设置Accept:text/plain, */*; q=0.01

我不知道为什么 SAPUI5 请求纯文本或者我可以在哪里改变这种行为。 有谁知道如何将此应用程序结构转移到 SAP Cloud?

答案很简单:服务器阻止对其他来源的请求以防止 CSRF 攻击。 在本地解决方案中,所有源文件都来自同一个来源:自己的服务器。 在 SAP Cloud 中,每个应用程序都使用自己的 URL 独立部署。 因此浏览器不接受来自其他项目的 JavaScript 文件。 访问这些文件的解决方案是将公共项目的 URL 添加到 SAP Cloud Cockpit 中的目的地。

仅供参考在目标中包含 URL 使您可以使用相对 URL 来引用外部 JavaScript 文件,以便浏览器不会阻止它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM