Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 OData模型不从服务器检索数据_Sapui5 - Fatal编程技术网

Sapui5 OData模型不从服务器检索数据

Sapui5 OData模型不从服务器检索数据,sapui5,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":

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

        $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)您收到的错误表明问题出在您的用户名和密码上。只要在你的谷歌chrome应用程序中用你的标题传递DHC的请求,你就会从服务器上得到同样的错误,这意味着用户名和密码有问题

2) 因为这只是一个get请求,所以不需要CSRF令牌验证。因此,删除该行, “X-CSRF-Token”:“获取”
从你的标题

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


尝试以上两种方法,它应该会起作用。

你能检查一下是否提出了请求,如果是,会返回什么结果吗?@hirse,他发送了三个请求:
/zumu\u contact\u person\u srv/$metadata
/zumu\u contact\u person\u srv/
/zumu contact\u person\u srv/$batch
$元数据-200 ok,zumu_contact_person_srv-20 ok(请求标题为
x-csrf-token:Fetch
),$batch-403禁止。他说:
CSRF令牌验证失败
。我不明白为什么?显然你没有用正确的用户登录,或者你的用户没有足够的权限。@hirse,我不这么认为。因为用户是在系统中专门为此测试用例创建的。此外,请求
/$metadata
zumu\u contact\u person\u srv/
也会正常触发。之后,客户端请求
/$batch
,服务器返回错误:
403禁止,CSRF令牌验证失败
Sanu,Hirse正确。如果不是身份验证问题,则可能与其他情况有关,如令牌、有效性、授权等。总之,403表示服务器拒绝向您提供数据,这就是您的模型保持为空的原因。