OData模型不从服务器

时间:2016-03-21 08:22:48

标签: sapui5

我正在尝试从服务器获取数据:

        $this.oModel = new sap.ui.model.odata.v2.ODataModel("https://myserver.com/sap/opu/odata/sap/zumu_contact_person_srv",{
            user: 'TEST',
            password: '12345678',
            headers: {
                "Accept": "application/json",
                "Accept-Language": "ru-RU",
                "DataServiceVersion": "2.0",
                "MaxDataServiceVersion": "2.0",
                "X-CSRF-Token": "Fetch"
            }
        });

        $this.getView().setModel($this.oModel, "ContactPerson");

        console.log($this.oModel);

在视图中我有表:

<Table id="Listing" class="tableList" mode="MultiSelect" items="{path: 'ContactPerson>/contactsList'}">
                <columns>
                    <Column id="vendorNum" minScreenWidth="Tablet" >
                        <Text text="{i18n>vendorNum}"/>
                    </Column>
                    <Column id="recipientType" minScreenWidth="Tablet" >
                        <Text text="{i18n>recipientType}"/>
                    </Column>
                    <Column id="supplierName" minScreenWidth="Tablet" >
                        <Text text="{i18n>supplierName}"/>
                    </Column>
                </columns>
                <items>
                    <ColumnListItem>
                        <cells>
                            <Input value="{ContactPerson>Parnr}" editable="false" />
                        </cells>
                        <cells>
                            <Input value="{ContactPerson>Ebonu}" editable="false" />
                        </cells>
                        <cells>
                            <Input value="{ContactPerson>NameFirst}" editable="false" />
                        </cells>
                    </ColumnListItem>
                </items>
            </Table>

为什么数据不附带服务器?对象$this.oModel.oData - 为空。可能是什么问题呢?或者我做错了什么?

1 个答案:

答案 0 :(得分:0)

1)您收到的错误表明问题出在您的用户ID和密码上。只需在您的谷歌浏览器应用程序中使用您的标题从DHC传递此请求,您应该从服务器收到相同的错误,这意味着userId和密码存在问题。

2)由于这只是一个获取请求,因此您不需要CSRF令牌验证。因此删除线,                 “X-CSRF-Token”:“获取”
来自你的标题。

“X-CSRF-Token”:“Fetch”应该用于从您的服务器获取CSRF令牌,并且您从服务器收到的令牌应该在POST或PUT请求中传递回服务器。

尝试以上两种方法,它应该可行。