使用jquery ajax post传入请求时,字符串被截断

使用jquery ajax post传入请求时,字符串被截断,jquery,ajax,jsp,Jquery,Ajax,Jsp,我试图将请求中的一个字符串传递回jspservlet post方法,但该字符串被截断。 该字符串的长度超过40K post调用如下所示:$.post(“assignedStructure”,“data=“+str”) 在post方法中,我可以从请求参数获取数据,但字符串被截断 提交表单时(不是通过JS调用),相同的字符串不会被截断,并且是完整的。我不想发布整个页面,因为我只需要将数据放到服务器端来处理和保存更改(该字符串基本上是一个包含需要保存的信息的json字符串) 在post方法中获取数据如

我试图将请求中的一个字符串传递回jspservlet post方法,但该字符串被截断。 该字符串的长度超过40K

post调用如下所示:
$.post(“assignedStructure”,“data=“+str”)

在post方法中,我可以从请求参数获取数据,但字符串被截断

提交表单时(不是通过JS调用),相同的字符串不会被截断,并且是完整的。我不想发布整个页面,因为我只需要将数据放到服务器端来处理和保存更改(该字符串基本上是一个包含需要保存的信息的json字符串)

在post方法中获取数据如下所示:

    if(request.getParameter("data") != "" && request.getParameter("data") != null"){            
        //get the orgs from the request param
        ArrayList<Organization> orgs = Util.CreateDataArray(request                     .getParameter("data"));
    //rest of method.......
    }

    public static ArrayList<Organization> CreateDataArray(String jsonString) {
            JsonParser parser = new JsonParser();

            JsonObject obj = (JsonObject) parser.parse(jsonString);
//rest of method........
if(request.getParameter(“数据”)!=”&&request.getParameter(“数据”)!=null){
//从请求参数获取ORG
ArrayList orgs=Util.CreateDataArray(request.getParameter(“数据”));
//方法的其余部分。。。。。。。
}
公共静态ArrayList CreateDataArray(字符串jsonString){
JsonParser=新的JsonParser();
JsonObject obj=(JsonObject)parser.parse(jsonString);
//方法的其余部分。。。。。。。。
ajax帖子或jquery ajax帖子是否有最大字符串长度


谢谢你的帮助。

可能你没有正确编码
str
。比如可能里面有
&
之类的东西

另外,作为旁注,
str==”
不是比较Java中字符串的正确方法。应该是
”.equals(str)
str.equals(”)
;在Java中的字符串上使用
=
比较内存位置(即指针等价)不是内容。但是,您确实使用了
str==null
,因为
null
是一个指针

我最初认为您的Ajax语法是错误的,应该是:

$.post( "assignedStructure", { data: str } );

请参见函数的
数据
部分。在示例中,它们始终使用JSON对象,而不是字符串:So
{data:str}
数据="+str
。但是正如Athony在评论中指出的那样,它确实说你可以用任何一种方式来做。对我来说,虽然看到POST的
var=val
语法似乎很奇怪,因为它看起来像是一眼就把GET和POST混淆了。

你的意思是说说
数据的文档可以是纯对象,也可以是字符串?将其作为object pro传递不过,bably会为您处理编码的需求;我从未测试过它。