2016-12-15 54 views
0

AngularJs $ http.post()如果我发送的数据是巨大的

我想一个任务保存到我的分贝不发送数据。如果assignedMember中的数据量超过175,它将不会发送404错误,但如果assignedMember中的数据量超过175,它将发送成功并存储我的数据库。对此有任何想法。我没有什么问题。请帮我谢谢

这是我的JSON数据

$scope.task= 

{ 
    "title": "My Title", 
    "description": "My Description", 
    "assignedMember": [ 
     { 
      "userId": "51b701dae4b0dd92df2c32d1", 
      "status": "ASSIGNED" 
     }, 
     { 
      "userId": "52de0811e4b04615ce7ed6bd", 
      "status": "ASSIGNED" 
     }, 
     { 
      "userId": "559f8e97e4b0a5cdcd66bb76", 
      "status": "ASSIGNED" 
     }, 
     . 
     . 
     . 
     . 
     . 
     .etc upto 500 data 
    ] 
} 

这是我的职务的请求的API

var responsePromise = $http.post("api/tasks",$scope.task); 
responsePromise.success(function(data, status, headers, config) { 
    alert("Data created successfully"); 
}); 
responsePromise.error(function(data, status, headers, config) { 
alert("Error") 
}); 

如果分配的成员规模超过175当我发送此JSON我得到了404错误

如果指定的成员大小小于175当我发送此json它将成功

如果我收到404错误我的浏览器控制台是这样 请求头

主机:本地主机

的User-Agent:Mozilla的/ 5.0(X11; Linux i686; RV:45.0)壁虎/ 20100101 火狐/ 45.0

接受:应用/ JSON,文本/无格式,/

接受语言:EN-US,EN; Q = 0.5

接受 - 编码:gzip的,放气

内容类型:应用/ JSON;字符集= UTF-8

的Referer:http://localhost/login.do

内容长度:24580

响应头

连接:关闭

内容编码:gzip

的Content-Type:text/html的

日期:星期四,12月15日2016 14:21:56 GMT

服务器:nginx/1.10.1

转移编码:分块

+0

我认为这取决于你的服务器设置,而不是在角度方面。例如,PHP的默认POST大小为2 MB,请尝试增加它 –

+0

如果您得到404,那么这就是您的服务器所说的。浏览器不构成状态码。 –

+0

@Vo Kim Nguyen,但我发了12MB图像工作正常 –

回答

0

我不知道它是否真的是同样的问题,但我们已经遇到过这种情况。我们使用了Angular和Apache服务器。当我们发送超过128 KB的请求时,我们发生错误。已经发现Apache的ModSecurity模块尝试将临时文件写入/删除到没有权限的目录中。仅当查询数据超过128 KB时才会出现此错误,因为在Apache中,默认情况下SecRequestBodyInMemoryLimit参数设置为128 KB。所以我们给启动Apache进程的用户写入和删除/home/imtadmw/logsSSL/目录中的文件的权限。我希望这可以指导你。这里有一些有用的链接:https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecTmpDirhttps://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRequestBodyInMemoryLimit