2016-09-15 97 views
0

我有一个小的angulaerjs应用程序,它在其中一个控制器中使用angularjs资源。这里是资源使用的代码角度资源获取请求已被取消

$scope.getFilteredTasks = function (filter) { 

     var resource = $resource('{0}/api/orderTasks/filterTasks'.format($scope.baseUrl), { status: '@status', type: '@type', createdDate: '@createdDate', agentType: '@agentType', page: '@page', pageSize: '@pageSize' }, { 
      'response': { method: 'GET', isArray: false } 
     }); 

     $('#loading').show(); 
     resource.response({ 
      status: filter.status, 
      type: filter.type, 
      createdDate: filter.createdDate, 
      agentType: filter.agentType, 
      page: $scope.currentPage, 
      pageSize: $scope.pageSize 
     }, 
      function (result) { 
       $scope.resultTasks = result.Items; 
       if ($scope.totalItems != result.TotalCount) 
        $scope.totalItems = result.TotalCount; 
       $('#loading').hide(); 
      }, 
      function (result) { 
       $('#loading').hide(); 
       alert('Error in request!') 
      }); 
    }; 

当页面第一次加载一切都很好,我得到我需要的所有数据。但是当我提出第二个请求时(例如,按下页面上的按钮,调用getFilteredTask(filter)函数)。我有一个result.status = -1。根据开发工具请求中的Fiddler和Chrome Network标签,状态为200,但被取消。我也检查了后端,发现没有问题,请求被处理成功,服务器返回了我需要的所有数据,但我在客户端获得了可请求的请求。

UPDATE

它loooks这样的问题只出现在Chrome。例如,在IE 11中,一切正常

回答

0

问题可能是您从链接发出ajax请求,而不是阻止链接被跟踪。因此,如果您在onclick属性中执行此操作,请确保return false;