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表示服务器拒绝向您提供数据,这就是您的模型保持为空的原因。