2017-11-25 83 views
0

當我打電話給XSet/$count時,我發現響應是xml,很難解析。如何在ui5中設置Content-Type:application/json oData.read()?

席力圖召

oModel.read("/XSet/$count", { 
    urlParameters: "$format=json", 
    filters: [new Filter(this._oFilterState.aTaskFilter, false)],  
}); 

稱爲XSet/$count?$format=json&$filter=(status eq 'NOT_STARTED')

返回

「系統查詢選項 '$格式' 是不符合返回類型兼容。」

但是XSet/$count?$filter=(status eq 'NOT_STARTED')&$format=json可以返回一個json格式的錯誤響應。

我想嘗試第二種方式,即將Content-Type: application/xml更改爲Content-Type: application/json。但未能找到這在API:應用/原子+ xml的,應用/ atomsvc​​ + xml的,應用:https://sapui5.hana.ondemand.com/#/api/sap.ui.model.odata.v2.ODataModel/methods/read

+0

什麼,當你調用的URL'HTTP你://主機:端口/路徑/ XSET/$ count'直接在瀏覽器?它不應該是XML而是一個實際的數字:http://services.odata.org/V4/Northwind/Northwind.svc/Customers/$count?$filter=City%20eq%20%27Berlin%27 – Marc

+0

Hi @Marc,是的,它在成功時返回數字,但是我爲這個調用做錯誤處理,失敗時返回xml格式響應。我問過我的後端同事,他讓我嘗試改變'內容類型'。 – Tina

回答

0

的通過設置Accept首部作爲

接受的XML響應Model.read方法請求/ xml

但是,計數請求是明文響應。您可以通過兩種方式獲取計數,一種方法是將模型的有效負載設置爲使用json,另一種方法是使用jQuery AJAX調用。

您可以使用json參數設置爲true來初始化模型。

var oModel = sap.ui.model.odata.v2.ODataModel("Service_URL",{ 
    json:true 
}); 

這將通過與接受的標題:應用程序/ JSON