2017-09-13 36 views
0

這是我的angularjs代碼HTTP POST方法400示出了錯誤時的請求數目是大

$scope.createOrderObject.orderItemObjs=JSON.stringify($scope.createOrderObject.orderItemObjs); 

$scope.createOrderObject 

是一個數組,這包含比3陣列更多。 當我添加達5產品這是工作超好,但是當我嘗試添加第6項顯示400錯誤。

$http({ 
      method: "POST", 
      url: baseUrl + "/Order/saveOrUpdateOrders", 
      params: $scope.createOrderObject, 
      headers: { 
       'Content-Type': 'application/json', 

      } 

在瀏覽器將此請求告知爲malform url後,發佈url變得非常大,大約有5000個字符。

我的servlet接收到這個請求這樣

@RequestMapping(value = "/Order/saveOrUpdateOrders", method =RequestMethod.POST) 
    public void saveOrUpdateOrders(OrdersFormObj orderFormObj, HttpServletResponse response, HttpServletRequest request) throws IOException { 
     try { 
      String addCity = request.getParameter("addCity"); 
      String addDist = request.getParameter("addDist"); 
      String orderItemObjs = request.getParameter("orderItemObjs"); 

這是一個

String orderItemObjs = request.getParameter("orderItemObjs"); 

Stringfy陣列

我真的不知道是什麼問題。我懷疑網址的長度,但我不知道如何解決這個問題。請幫忙擺脫這個

回答

1

這似乎是一個POST請求中的PARAMS的長度問題。請閱讀以下

What is the maximum length of a URL in different browsers?

所以,我要說,你使用一些其他的機制,將數據發送到服務器。

相反的params,你應該使用data像下面

$http({ 
     method: "POST", 
     url: baseUrl + "/Order/saveOrUpdateOrders", 
     data: $scope.createOrderObject, 
     headers : { 
      'Content-Type' : 'application/json' 
     }) 
1

儘量使AJAX調用這種方式:

var req = { 
method: 'POST', 
url: baseUrl + "/Order/saveOrUpdateOrders", 
headers: { 
    'Content-Type': "application/json" 
}, 
data: $scope.createOrderObject 
} 

$http(req).success(function(){...}).error(function(){...}); 

PARAMS」 是GET調用,使用 「數據」 與後調用