2016-12-15 29 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