发布网友 发布时间:2022-05-06 23:31
共3个回答
懂视网 时间:2022-05-15 05:53
下面我就为大家带来一篇ajax快速解决参数过长无法提交成功的问题。现在就分享给大家,也给大家做个参考。查了很多资料都说,get方法的参数是有限制的,post方法的参数的长度是无限制,这也是post相比get的优势一直。
在ajax中使用post方法,用常规的参数格式:param1=a1¶m2=a2 ,当参数长度过长时,依然提交不成功。比如我们经常这样写一个ajax的post请求:
这样使用的时候,发现若是参数2:content内容过多时,比如我传的是一个比较大的文本内容,我在后台服务(我用的是servlet)中获取时:
String content= request.getParameter("content");
这里的content的值,为null。
还有一种快捷的方法可以查看ajax请求是否成功,使用F12开发者工具进行调试,在执行完ajax代码后,在F12工具中的network选项页面中,可以看到发起的请求,这时候看到的请求的参数有错误提示。
解决方法:
ajax的参数格式还有另外一种写法:json格式的请求参数,我可以写成这样:
var param = "{requestTag:""+requestTag+"",content:""+content+""}";
(ps:注意json格式要正确)
这个时候,若是使用F12进行debug,可以看到请求的参数的数据都是正确的。
那么问题来了,我在servlet中获取的content依旧是null,这是为什么呢???
由于请求参数是一个json数据块,所以这种request.getParameter(“content”)方法,当然获取不到数据啦,因为它不会给我们解析json数据。
那么我们传递的参数数据在哪里呢?
重点来了:数据都在request对象里。
那么我们就用最原始的方法,通过数据流的方法获取传递的数据,如下:
这时候,我们的json数据都在sb对象中了,接下来只需要解析json对象就可以了:
到这里,我们就可以获取到content的了。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
AjaxSubmit()提交file文件
Ajax解决多余刷新的两种方法
Ajax同步和异步问题浅析及解决方法
热心网友 时间:2022-05-15 03:01
这不就是一个json格式的嘛,定义一个json变量不就OK啦热心网友 时间:2022-05-15 04:19
拼接成一个json参数.追答没有规律也要创造规律,至少有一点很清楚,一个有用的变量就必须能读能用,否则要他何用?
即然你用了jquery,就可以有计划有给"要用"的控件加class名,然后用$(".className")获取元素集合,根据type或者其依据获取id:value,做自动拼接.
你总不能把整个$("form").html()当参数回传吧...后台不得累死...