Fiori使用destination解决跨域,destionation其实就是反向代理
注1:跨域就是url协议,域名,端口不同不能通信
1、使用 Web IDE 配置连接
在线版 Web IDE(https://account.hanatrial.ondemand.com),登陆后找到左边 Panel 下的 Connectivity -> Destinations:
- 在new destination中设置目标地址名字+url (name是我们在程序中要用的标识,URL是服务的主地址)
- 配置New Property
- 保存后,点击Checkconnection,如果出现成功提示,则表示连接成功
配置好destionation后,该IDE项目的serviceUrl需要将host和port改为/destinations/目标名/
2、连接测试
在在线IDE中创建一个SAP UI5 Application 项目,项目文件夹中多了neo-app.json 文件和 .project.json,neo-app.json文件里包含destination.
{
"path": "/destinations/目标名",
"target": {
"type": "destination",
"name": "目标名"
},
"description": "Northwind OData Service"
}
参考博文:
使用sap web ide:http://blog.youkuaiyun.com/z125512240/article/details/71774491
新建一个测试文件夹test:
- HTML页面mockServer.html:以测试模式启动应用程序的入口文件
- Invoices.json:本地测试数据
- metadata.xml:OData的服务描述文件
- mockserver.js:利用mockServer模拟真实服务
mockserver.js
1、创建mockServer类并指明其服务器uri:
var oMockServer = new MockServer({
rootUri: "/destinations/northwind/V2/Northwind/Northwind.svc/"
});
var oUriParameters = jQuery.sap.getUriParameters();
2、配置mockServer类
MockServer.config({
autoRespond: true,
autoRespondAfter: oUriParameters.get("serverDelay") || 1000
});
3、虚拟OData服务描述文件和数据
var sPath = jQuery.sap.getModulePath("new_test03.localService");
oMockServer.simulate(sPath + "/metadata.xml", sPath + "/mockdata");
4、mockServer启动
oMockServer.start();