在查询字符串中使用json时发布大量数据的问题

时间:2013-12-09 21:36:18

标签: javascript jquery json ajax

我使用jQuery ajax请求向服务器发布了四个JSON对象。每个对象最多可以有30k个字符。当所有参数都很大时,最后一个参数甚至最后两个参数都不会显示在服务器上。当参数较小时,一切正常。

在chrome的网络标签中,我完整地看到了所有参数。在小提琴手中,我看到了完整的参数,但是服务器上没有显示的参数将没有名称。

的Fiddler

fiddler snippit

我的请求结构如下:

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没有参数的名称。

1 个答案:

答案 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/