Javascript ODATA请求中止

Javascript ODATA请求中止,javascript,sapui5,sap-fiori,Javascript,Sapui5,Sap Fiori,有时,SAPUI5中我的特定应用程序中的odata请求崩溃(iwfnd/error_log中的GW端没有错误)。 如果我在chrome网络选项卡中重播呼叫,它总是有效的 我收到此错误:出现以下问题:请求中止- 使用的SAPUI5版本是:“1.38.9”。 以下是堆栈: O @ sap-ui-core.js:formatted:9550 Q.fatal @ sap-ui-core.js:formatted:9571 h._handleError @ ODataModel.js:6

有时,SAPUI5中我的特定应用程序中的odata请求崩溃(iwfnd/error_log中的GW端没有错误)。 如果我在chrome网络选项卡中重播呼叫,它总是有效的

我收到此错误:出现以下问题:请求中止-

使用的SAPUI5版本是:“1.38.9”。 以下是堆栈:

O   @   sap-ui-core.js:formatted:9550
Q.fatal @   sap-ui-core.js:formatted:9571
h._handleError  @   ODataModel.js:6
k   @   ODataModel.js:6
(anonymous) @   ODataModel.js:6
i.abort @   datajs.js:17
abort   @   ODataModel.js:6
c.abortPendingRequest   @   ODataListBinding.js:6
c.filter    @   ODataListBinding.js:6
在“主细节”场景中,当我单击“主细节”列表中的项目时,我会过滤细节中的一些数据。问题是Odata请求中止时,数据实际上没有更新。 以下是代码的简短版本:

    _onRouteMatched: function(oEvent) {
filterCharac.push(new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework));
      filterCharac.push(new sap.ui.model.Filter("Ztasknb", sap.ui.model.FilterOperator.EQ, oArgs.taskId));
      this.getView().byId("TableCharac").getBinding("items").filter(filterCharac);
      this.getView().byId("StatusLog").getBinding("items").filter(new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework));
      this.getView().byId("lowestItems").getBinding("items").filter(filterCharac);
      var commentsFeed = this.getView().byId("Comments");
      var oFilter = new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework); // name between A and G
      commentsFeed.getBinding("items").filter(oFilter);

}

当获取某些数据(如完整列表内容)的请求被中止时,通常会发生这种情况,因为在请求完成之前对列表应用了过滤(或排序)。因为UI5检测到最初请求的数据不再“有用”,所以它中止请求

UI5代码中的以下注释解释了这一点():

/*
*中止当前挂起的请求(如果有)。
*
*如果我们确定
*当前请求不再相关,例如筛选/
*触发排序或更改上下文。
*/
理论上,这不应该影响应用程序的行为(但我想在控制台中看到错误是很难看的)。您可以通过在聚合的前面应用过滤来避免这种情况(例如,直接在视图中而不是在控制器中)


如果您可以向我们展示您正在筛选的聚合(可能来自JS)以及如何在视图中定义聚合,也许我们可以提出一个更具体的解决方案。

您可以共享调用筛选方法的函数吗?过滤器是否在XMLview中硬编码?调用filter方法后,您会立即执行什么操作?一般来说,更多的代码会有帮助。