数据密集型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流式传输到浏览器而没有任何问题。