Angular $ http服务返回空字符串以获取大型JSON响应

时间:2017-03-13 22:22:33

标签: javascript angularjs json asp.net-web-api large-data

数据密集型Intranet应用程序使用以下angularjs post函数。它调用Web API服务返回分块流中的大型JSON对象。这对于100Mb的响应非常有效,但在响应达到约250 Mb时失败。

$scope.refresh = function (){
        usSpinnerService.spin("main-grid");
        $http.post('/api/Assets/GetLargeJSONResult', $scope.postPayload
            ).then(
                function successCallback(response) {
                    $scope.mainGridOptions.api.setRowData(response.data);
                    $scope.mainGridOptions.api.refreshView();
                    clearErrorMessage();
            },
            httpErrorCallback)
            .then(refreshGridTwo)
            .finally(function () {
                usSpinnerService.stop("main-grid");
            });
};

$scope.mainGridOptions.api.setRowData(response.data);行上设置一个断点,表明response.data是一个空字符串。

其他一切都很好。我尝试了各种不同的方式从Web服务器返回JSON响应,所以我怀疑问题是在服务器端。我的目标是Windows中的Chrome浏览器。

相关的请求标题:

  
      
  • 接受:application / json,text / plain, /
  •   
  • 接受编码:gzip,deflate,br
  •   
  • 接受语言:en-US,en; q = 0.8
  •   
  • 连接:keep-alive
  •   

相关回复标题

  
      
  • HTTP / 1.1 200确定
  •   
  • 缓存控制:无缓存
  •   
  • 转移编码:chunked
  •   
  • Content-Type:application / json
  •   
  • 到期:-1
  •   

我知道一个选项是将响应分页到更小的块中。但是,我希望保持数据完整,因为它在网格中进行分析。我想知道我是否遗漏了一些东西,因为我可以成功地将非常大的开放式办公室xml文件(媒体类型“application / octet-stream”)从Web API流式传输到浏览器而没有任何问题。

0 个答案:

没有答案