我使用jQuery ajax请求向服务器发布了四个JSON对象。每个对象最多可以有30k个字符。当所有参数都很大时,最后一个参数甚至最后两个参数都不会显示在服务器上。当参数较小时,一切正常。
在chrome的网络标签中,我完整地看到了所有参数。在小提琴手中,我看到了完整的参数,但是服务器上没有显示的参数将没有名称。
的Fiddler
我的请求结构如下:
var formData = "json0=" + JSON.stringify(json0) + "json1=" + JSON.stringify(json1); //etc
$.ajax({
type: 'POST',
url: url,
data: formData,
success: function (result) {},
error: function() {}
});
我不认为POST会受到限制,但是由于某种原因,它的行为就像数据被截断一样。服务器端我在Java中使用ParameterAware来检索数据,但我认为问题是在它到达之前,因为fiddler没有参数的名称。
答案 0 :(得分:2)
查询字符串不是针对大量数据的,您应该将数据传递给对象中的Ajax调用:
$.ajax({
type: 'POST',
url: url,
dataType: "JSON",
data: {
json0: json0,
json1: json1
// etc
},
success: function (result) {},
error: function() {}
});
Have a look at this article discussing the maximum length of query strings.
jQuery AJAX文档:http://api.jquery.com/jQuery.ajax/