如何在从另一个应用程序加载的自定义库中加载 sapui5 xml 片段?

问题描述 投票:0回答:1

我们有一个自定义控件库,可以在不同的 sapui5 应用程序中使用。 对于 js 控件,这工作正常,但现在我试图让它与 xml 片段一起工作。

该库像应用程序一样部署,包含扩展 sap/ui/base/Object 的 js 文件并且工作正常。 我们通过其他应用程序调用它

sap.ui.loader.config({
    paths: {
        'zfiorilibrary': sLibraryPath
    }
});

然后我们可以从应用程序的控制器访问它,方法是像加载 sapui5 中的任何其他对象一样加载它,并在 sap.ui.define() 的顶部声明它

现在我对库中的 xml 文件进行了相同的尝试,但它无法加载并在控制台中给出 cors 错误。

this._oAttachmentsMangerDialog = sap.ui.xmlfragment("library-AttachmentsManager", "zfiorilibrary.fragments.AttachmentsManager", this);

jquery-dbg.js:9325 Access to XMLHttpRequest at 'https://ourserver/sap/bc/ui5_ui5/sap/zfiorilibrary/fragments/AttachmentsManager.fragment.xml' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

当我点击 url 时,xml 加载正常

我们在加载js文件时从来不会出现cors错误。 我可以做什么来从库加载 xml 文件?

我们使用 sapui5 版本 1.71.x(始终是最新的 1.71)

javascript cors sapui5 sap-fiori
1个回答
0
投票

Javascript 文件通过发出

<script>
 请求的 
no-cors
元素加载。它们可以从任何来源加载。

相比之下,XML 文件无法通过 HTML 元素(没有

<xml>
)加载,而只能通过
XMLHttpRequest
(或等效的
fetch
)加载。这些提出了
cors
请求。如果您的跨源服务器未提供必要的 CORS 标头,浏览器将发出您观察到的错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.