最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ajax的参数过长无法提交如何处理

来源:动视网 责编:小采 时间:2020-11-27 19:56:48
文档

ajax的参数过长无法提交如何处理

ajax的参数过长无法提交如何处理:这次给大家带来ajax的参数过长无法提交如何处理,处理ajax参数过长无法提交的注意事项有哪些,下面就是实战案例,一起来看一下。查了很多资料都说,get方法的参数是有限制的,post方法的参数的长度是无限制,这也是post相比get的优势一直。在ajax中使用p
推荐度:
导读ajax的参数过长无法提交如何处理:这次给大家带来ajax的参数过长无法提交如何处理,处理ajax参数过长无法提交的注意事项有哪些,下面就是实战案例,一起来看一下。查了很多资料都说,get方法的参数是有限制的,post方法的参数的长度是无限制,这也是post相比get的优势一直。在ajax中使用p

这次给大家带来ajax的参数过长无法提交如何处理,处理ajax参数过长无法提交的注意事项有哪些,下面就是实战案例,一起来看一下。

查了很多资料都说,get方法的参数是有限制的,post方法的参数的长度是无限制,这也是post相比get的优势一直。

在ajax中使用post方法,用常规的参数格式:param1=a1¶m2=a2 ,当参数长度过长时,依然提交不成功。比如我们经常这样写一个ajax的post请求:

$.ajax({
 type: "post", // post or get
 contentType:"application/json;charset=utf-8",
 data: “requestTag=”+tag+"&content="+content, //请求参数
 url: "postMockJson", //地址
 dataType: "text",
 error: function (err) {
 outLog("错误"+err);
 },
 success: onSaveSuccess
});

这样使用的时候,发现若是参数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对象里。

那么我们就用最原始的方法,通过数据流的方法获取传递的数据,如下:

request.setCharacterEncoding("UTF-8");
StringBuilder sb = new StringBuilder();
try(BufferedReader reader = request.getReader();) {
char[] buff = new char[1024];
int len;
 while((len = reader.read(buff)) != -1) {
 sb.append(buff,0, len);
 }
}catch (IOException e) {
 e.printStackTrace();
}

这时候,我们的json数据都在sb对象中了,接下来只需要解析json对象就可以了:

JSONObject jobject = JSONObject.fromObject(sb.toString());
String requestTag = jobject.getString("requestTag");
String content = jobject.getString("content");

到这里,我们就可以获取到content的了。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

ajax跨域访问报错501怎么处理

使用Ajax实现根据人力资源系统数据增加OA账号的方法

文档

ajax的参数过长无法提交如何处理

ajax的参数过长无法提交如何处理:这次给大家带来ajax的参数过长无法提交如何处理,处理ajax参数过长无法提交的注意事项有哪些,下面就是实战案例,一起来看一下。查了很多资料都说,get方法的参数是有限制的,post方法的参数的长度是无限制,这也是post相比get的优势一直。在ajax中使用p
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top