ajax快速解决参数过长无法提交成功的问题

下面我就为大家带来一篇ajax快速解决参数过长无法提交成功的问题。现在就分享给大家,也给大家做个参考。

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

在ajax中使用post方法,用常规的参数格式:param1=a1&param2=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的了。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

AjaxSubmit()提交file文件

Ajax解决多余刷新的两种方法

Ajax同步和异步问题浅析及解决方法

以上就是ajax快速解决参数过长无法提交成功的问题的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2759208.html

(0)
上一篇 2025年3月8日 08:24:08
下一篇 2025年2月24日 18:55:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Ajax解决缓存的5种方法总结

    下面我就为大家带来一篇ajax解决缓存的5种方法总结。现在就分享给大家,也给大家做个参考 1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“If-Modified-Since”,”0″)。 2、在aja…

    编程技术 2025年3月8日
    200
  • Ajax请求和Filter配合案例解析

    这篇文章主要介绍了ajax请求和filter配合案例解析的,本文给大家介绍的非常详细,具有参考借鉴加载,需要的朋友可以参考下 案例引入 现在有这样一个问题,就是在提交大片文字评论的时候,前台拿到数据之后给后台发送ajax请求,然后后台有一个…

    编程技术 2025年3月8日
    200
  • 解决AJAX请求中含有数组的办法

    这篇文章主要给大家介绍了如何解决ajax请求中含有数组的问题,文中给出了详细的示例代码,相信对大家的理解和学习很有帮助。 大家应该都发现了当我们发送AJAX请求的数据中带有数组时,是不能像普通JSON数据一样,直接放在data里发送给后台 …

    2025年3月8日
    200
  • 使用ajax异步提交表单的几种方法总结

    下面我就为大家带来一篇使用ajax异步提交表单的几种方法总结。现在就分享给大家,也给大家做个参考。 这里介绍三种常用的提交方式 方式一 手工收集所有的用户输入,封装为大的“k1=v1&k2=v2…”键值对形式,使用$.post(ur…

    编程技术 2025年3月8日
    200
  • AJAX请求队列实现

    这篇文章主要为大家详细介绍了ajax请求队列的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 AJAX在使用的过程中会遇到一个问题,当用户短时间内执行了多个异步请求的时候,如果前一个请求没完成,将会被取消执行最新的一个请求,大多…

    编程技术 2025年3月8日
    200
  • MVC遇上bootstrap后的ajax表单验证

    这篇文章主要为大家详细介绍了mvc遇上bootstrap后的ajax表单验证,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jquery.val…

    2025年3月8日
    200
  • Ajax 通过城市名获取数据

    本文给大家分享全国天气预报api ajax 通过城市名获取数据,通过html和js两部分代码实现天气预报效果,输入城市就会出现天气情况,效果非常棒,感兴趣的朋友可以参考下 预览图(比较简单粗糙) 聚合数据全国天气预报接口:https://w…

    2025年3月8日
    200
  • 通过数据库和ajax方法写出地图的实例代码

    ajax 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。这篇文章主要介绍了通过数据库和ajax方法写出地图的实例代码的相关资料,需要的朋友可以参考下 ajax教程 AJAX = Asynchronous JavaSc…

    2025年3月8日
    200
  • 聊聊Ajax提交form表单的看法和认识

    ajax,异步请求,通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新。通过本文给大家聊一聊ajax提交form表单的看法和认识,感兴趣的朋友一起学习吧 ajax (ajax开发) AJAX即“Asynchronous J…

    编程技术 2025年3月8日
    200
  • 使用原生ajax处理json字符串的方法

    json的全称是 javascript object notation(javascript对象表示法),是基于javascript对象字面量。这篇文章主要介绍了使用原生ajax处理json字符串的相关资料,需要的朋友可以参考下 AJAX …

    2025年3月8日
    200

发表回复

登录后才能评论