SapUI5和Odata服务问题

时间:2016-03-26 19:02:10

标签: odata sap sapui5

我正在尝试在sapui5 app中使用Gateway OData Services。

元数据 - /sap/opu/odata/SAP/ZUSER_MANAGE_SRV/$metadata如下: enter image description here

UserdataSet - /sap/opu/odata/SAP/ZUSER_MANAGE_SRV/UserdataSet如下: enter image description here

我的代码

var oModel = new sap.ui.model.odata.ODataModel("http://Host:Port/sap/opu/odata/SAP/ZUSER_MANAGE_SRV", false,"USER","Password");

    var app = new sap.m.App("myApp",{});

    var oTable = new sap.m.Table("list1", {
                                growing: true,
                                growingThreshold: 200,
                                //mode: sap.m.ListMode.SingleSelect,
                                columns: [
                                    new sap.m.Column({
                                        header: new sap.m.Label({text: "ID"})
                                    }),
                                    new sap.m.Column({
                                        header: new sap.m.Label({text: "First Name"})
                                    }),
                                    new sap.m.Column({
                                        header: new sap.m.Label({text: "Last Name"})
                                    })
                                ],
                                items: {
                                    path: "/UserdataSet",
                                    template: new sap.m.ColumnListItem({
                                        cells: [
                                            new sap.m.Input({value: "{EUname}"}),
                                            new sap.m.Input({value: "{EFirstname}"}),
                                            new sap.m.Input({value: "{ELastname}"})
                                        ]
                                    })
                                }
                            });    
    oTable.setModel(oModel);
    var page1 = new sap.m.Page("page1",{
        title: "App",
        content: [oTable]
    });

    app.addPage(page1);

    return app;

将错误视为 - uncaught exception: [object Object]

详细错误 - [![enter image description here][3]][3]

请帮忙,我的代码怎么了?

2 个答案:

答案 0 :(得分:0)

您的OData服务需要位于同一台服务器上,或者需要来自与UI5应用程序相同的服务器。如果它不在同一台服务器上,您应该让Gateway生成CORS头。

请在此处找到有关CORS以及如何让Gateway生成这些标题的更多信息:http://scn.sap.com/community/gateway/blog/2014/09/23/solve-cors-with-gateway-and-chrome

答案 1 :(得分:0)

错误不是很清楚,在这种情况下,chrome可能会显示更详细的错误。

如果您的应用程序服务器和odata服务不是来自同一个来源,则SOP(相同的原始策略)会限制此操作。

如果两个页面的协议,端口和主机相同,则两个页面具有相同的来源。

有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

你可以使用--disable-web-security标志启动chrome: 在CMD:

C:/<path to chrome app>/chrome.exe --disable-web-security

<强> !!!仅用于发展原因!!!