需要从SAP Fiori中的其他主机加载UI5模块

chi*_*igk 8 tomcat custom-controls sapui5 sap-fiori

我们有2个应用之一是部署在SAP ABAP资源库,这是写OpenUI5另一个应用程序,所以我们已经部署在Apache Tomcat上未涉及到SAP的SAP应用菲奥里.

我们需要整合这两个应用程序,比如点击Fiori应用程序中的按钮需要打开OpenUI5应用程序.

问题是部署在Tomcat上的模块(App)是无法打开的,因为当我们注册模块路径时,fiori没有使用domian

    jQuery.sap.addUrlWhitelist("http", "tomcat.server.host", "7070", "/tomcatapp/resources/js/ui5widgets");

    jQuery.sap.registerModulePath("com.xxx.yyy", "http://tomcat.server.host:7070/tomcatapp/resources/js/ui5widgets");
Run Code Online (Sandbox Code Playgroud)

当我需要的时候

错误是

core-min-0-dbg.js:17351 Uncaught Error: failed to load 'com/xxx/yyy/aaa/bbb.js' from /sap/bc/ui5_ui5/ui2/ushell/resources/~20151006101200~/com/xxx/yyy/aaa/bbb.js: 

0 - AbortError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'http://sap.netweaver.net:2020/sap/bc/ui5_ui5/ui2/ushell/resources/~20151006101200~/com/xxx/yyy/aaa/bbb.js'.(…)
Run Code Online (Sandbox Code Playgroud)

csc*_*uff 1

如果我做

jQuery.sap.registerModulePath("test.test", "http://www.google.de");
jQuery.sap.require("test.test.MyTest");
Run Code Online (Sandbox Code Playgroud)

该文件已正确解析为http://www.google.de/MyTest.js

您确定您的包名称没有被其他名称覆盖吗?例如,像“sap.ui.something”这样的包名称显然是一个坏主意。但还有一些不太明显的例子。您可以展示更多/真实的代码吗?

无论如何,你必须处理CORS