有教程的读者向我提问:已经完成了下列两个步骤的学习:
- SAP UI5 应用开发教程之十 - 什么是 SAP UI5 应用的描述符 Descriptor
- SAP UI5 应用开发教程之一百三十三 - SAP UI5 应用元数据文件 manifest.json 的加载和解析原理讲解
自己本地 Visual Studio Code 开发了一个 SAP UI5 应用,使用命令行 ui5 serve
启动了本地开发服务器,访问 localhost:8080, 能够看到 index.html 和与其同处一个目录下的 manifest.json 文件。
然而点击 index.html 之后,应用程序无法正常被加载,出现白屏。在 Chrome 开发者工具 console 面板,出现下列的错误消息:
Access to XMLHttpRequest at 'https://sapui5.hana.ondemand.com/resources/singleFile/manifest.json?sap-language=EN' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
这个问题有点怪,明明应该从 localhost:8080 目录下去加载我们 SAP UI5 应用的 manifest.json 文件,为什么运行时实际上从这个错误的地址 https://sapui5.hana.ondemand.com/resources/singleFile/manifest.json?sap-language=EN
去加载了呢?
很显然 https://sapui5.hana.ondemand.com
上面是不可能存在我们应用程序自己编写的 manifest.json 文件的,所以这个错误消息从字面上看是一个跨域错误,实际上问题根源在于,我们自己编写的应用程序存在错误,导致 SAP UI5 框架引导程序从一个错误的地址去加载 manifest.json 文件。
下面是这个问题正确的修复方式。
网友评论