这是我的angularjs代码
$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',
}
在该浏览器将此请求称为错误网址后,发布网址变得非常大,约为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数组
真的我不知道是什么问题。我怀疑网址长度,但我不知道如何解决这个问题。请帮忙摆脱这个
答案 0 :(得分: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 :(得分:1)
尝试以这种方式进行ajax调用:
foreach
"的 PARAMS 强>"用于GET通话,使用" 数据"通过邮局召集
答案 2 :(得分:0)
POST方法没有任何大小限制。但是,您可能用于运行应用程序的服务器可能有一些大小限制。你可能想检查一下。 检查以供参考: AngularJs $http.post() request is not sending when sending data size is huge?
另一个选择是使用分页数据并以小块形式发送。