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

这次给大家带来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的了。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

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

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

以上就是ajax的参数过长无法提交如何处理的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 14:35:04
下一篇 2025年3月8日 14:35:13

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

相关推荐

  • 在Ajax中怎样清除缓存

    这次给大家带来在Ajax中怎样清除缓存,在Ajax中清除缓存的注意事项有哪些,下面就是实战案例,一起来看一下。 1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“If-Modified-Since”,”…

    编程技术 2025年3月8日
    200
  • AJAX请求数组应该如何实现

    这次给大家带来AJAX请求数组应该如何实现,AJAX请求数组的注意事项有哪些,下面就是实战案例,一起来看一下。 大家应该都发现了当我们发送AJAX请求的数据中带有数组时,是不能像普通JSON数据一样,直接放在data里发送给后台 比如有这样…

    2025年3月8日
    200
  • ajax异步提交表单有哪几种方法

    这次给大家带来ajax异步提交表单有哪几种方法,ajax异步提交表单的注意事项有哪些,下面就是实战案例,一起来看一下。 这里介绍三种常用的提交方式 方式一 手工收集所有的用户输入,封装为大的“k1=v1&k2=v2…”键值对形式,使…

    编程技术 2025年3月8日
    200
  • Ajax请求时传输中文乱码怎么解决

    这次给大家带来Ajax请求时传输中文乱码怎么解决,解决Ajax请求时传输中文乱码的注意事项有哪些,下面就是实战案例,一起来看一下。 今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题。 如下代码: function Update…

    编程技术 2025年3月8日
    200
  • 使用Ajax的详细解析

    这次给大家带来使用Ajax的详细解析,使用Ajax的注意事项有哪些,下面就是实战案例,一起来看一下。 Ajax 简介 Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器…

    2025年3月8日
    200
  • Ajax遍历jSon进行数据的修改和删除

    这次给大家带来ajax遍历json进行数据的修改和删除,ajax遍历json进行数据修改和删除的注意事项有哪些,下面就是实战案例,一起来看一下。 废话不多说了,直接给大家贴代码了,具体代码如下所示: $.ajax({url: “/busin…

    编程技术 2025年3月8日
    200
  • ajax的工作原理详解

    这次给大家带来ajax的工作原理详解,使用ajax的注意事项有哪些,下面就是实战案例,一起来看一下。 AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载…

    编程技术 2025年3月8日
    200
  • AJAX的队列请求如何实现(附代码)

    这次给大家带来AJAX的队列请求如何实现(附代码),AJAX队列请求实现的注意事项有哪些,下面就是实战案例,一起来看一下。 AJAX在使用的过程中会遇到一个问题,当用户短时间内执行了多个异步请求的时候,如果前一个请求没完成,将会被取消执行最…

    编程技术 2025年3月8日
    200
  • Ajax如何读取txt并对其内容进行分页展示

    这次给大家带来Ajax如何读取txt并对其内容进行分页展示,Ajax如何读取txt并对其内容进行分页展示的注意事项有哪些,下面就是实战案例,一起来看一下。 下文给大家分享了ajax读取txt并对txt内容进行分页显示的核心代码,废话不多说了…

    编程技术 2025年3月8日
    200
  • 深入理解ajax的XHR对象

    这次给大家带来深入理解ajax的XHR对象,使用ajax的XHR对象注意事项有哪些,下面就是实战案例,一起来看一下。 前面的话   ajax是asynchronous javascript and XML的简写,中文翻译是异步的javasc…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论