1.项目中总会遇到一些get请求参数过长,导致访问失败的问题,首先,get请求参数过长,访问失败的原因不是http协议的限制,是浏览器与服务器对get请求长度限制导致的。

2.常见的浏览器get请求方式长度限制

Http get方法提交的数据大小长度并没有限制,Http协议规范没有对URL长度进行限制。

目前说的get长度有限制,是特定的浏览器及服务器对它的限制。

各种浏览器和服务器的最大处理能力如下:

IE:对URL的最大限制为2083个字符,若超出这个数字,提交按钮没有任何反应。

        Firefox:对Firefox浏览器URL的长度限制为:65536个字符。

        Safari:URL最大长度限制为80000个字符。

        Opera:URL最大长度限制为190000个字符。

        Google(chrome):URL最大长度限制为8182个字符。

        Apache(Server):能接受的最大url长度为8192个字符(这个准确度待定???)

        Microsoft Internet Information Server(IIS):n能接受最大url的长度为16384个字符。

3.适用场景:在有些项目中需要签署一些买卖合同协议,合同内容有些值是不固定的,比如说地址,日期等,这些不固定的值可能有上百个,如果用户需要查看协议内容,一般会打开一个新的页面。这时需要将这些不固定的值填充到协议页面上。

4.如果直接使用get传输所有参数 方式打开新页面

 window.open(baseUrl+"/mercAxqSign?param="+param,"_blank");

param做为一个json字符串,可能包含上百个参数,这时会请求出错。

5,处理方式 :通过post请求解决get请求参数过长

先通过post请求,将参数存到后台服务中,如果参数比较重要,可以保存到数据库中,如果不重要,就放在缓存中,五分钟后自动清空。

$.ajax({url: baseUrl+"/yplay/axq_save_params", //这里保存参数信息type: "post", // 提交方式contentType : "application/json",data: JSON.stringify(params),  // data为String类型,必须为 Key/Value 格式。dataType: "json",    // 服务器端返回的数据类型async:false,success: function (data) {          if (data.code == "000000") { if(freezeVersion == "0"){window.open(baseUrl+"/mercAxqSign?id="+id,"_blank"); //通过id去服务器端查找参数} else{window.open(baseUrl+"/mercAxqProtocol?id="+id,"_blank");  }} else {alert(data.message);}},});

服务器端代码,这里使用的jsp页面,返回ModelAndView:

@RequestMapping(value ="/mercAxqSign")public ModelAndView mercAxqSign(HttpServletRequest request) {String id = (String) request.getParameter("id");String data =  jinJianService.axqGetParams(id); //通过id查询保存到数据库的参数ModelAndView mv = new ModelAndView();mv.addObject("data",JSONObject.parse(data));         mv.setViewName("mercAxqSign");return mv;  }

如何处理Get请求参数过长相关推荐

  1. ajax请求到参数太大获取参数失败问题,Ajax请求参数较长导致请求失败

    Ajax请求参数比较长,第5行参数大概1100个字符吧,是接口的请求报文. $.ajax({ type:"POST", url:"${ctx}/test.action?m ...

  2. 【实习】解决请求参数过长问题

    又要解决bug啦!!! 由于前端传过来的json数据过长导致请求参数太长,最后出现空指针异常. HTTP/1.1 414 Request-URI Too Large 解决方法: 参考:Java使用GZ ...

  3. springboot post 请求参数过长请求接口报错 An HTTP line is larger than 4096 bytes

    springboot项目post请求参数过长请求接口报错如下: 解决办法将post请求参数值调大: server:tomcat:max-http-form-post-size: 5MB

  4. 解决Springboot GET请求参数过长的情况

    项目场景: 使用Spring Boot进行项目开发,解决Springboot GET请求参数过长的情况 问题描述 报错信息:Springboot GET请求参数过长抛出异常:Request heade ...

  5. solr 请求参数过长报错,Solr配置maxBooleanClauses属性不生效原因分析

    博客分类: 上次已经写过一篇关于solr中,查询条件过多的异常的文章,这次在总结扩展一下: 有时候我们的查询条件会非常多,由于solr的booleanquery默认设置的条件数为1024,所以超过这个 ...

  6. curl --- post请求参数过长(超过1024B)时请求失败

    今天发curl时,报错Argument list too long curl -H "Content-Type: application/json " -iv -X POST -d ...

  7. 解决Springboot get请求是参数过长的情况

    解决Springboot get请求是参数过长的情况 问题原因 Springboot get请求是参数过长抛出异常:Request header is too large 的问题 错误描述 java. ...

  8. java rsa加密解密_前端实现对请求参数进行RSA加密amp;解密,针对字符串过长进行分段加密amp;分段解密的处理...

    前言 在需求开发中,为了安全起见,我们都会难免遇到需要对一些敏感参数进行加密或者解密.所以,今天给大家分享的就是使用jsencrypt对请求参数进行RSA加密与解密,发这篇文章其实主要因为近期我的一位 ...

  9. Tornado请求分析request, 获取请求参数

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 请求分析request WEB请求的那些事 这节中,我们来根据客户请求报文中的请求行(Request line) ,请求头部(Request Head ...

最新文章

  1. 20165302第八周总结
  2. LFFD ncnn torch
  3. Java 三大特性 —— 多态
  4. java做 binggo,Linux启动与停止spring boot工程的脚本示例
  5. 图像超分辨率(Super-Resolution)技术研究
  6. vue--配套axios用法
  7. 分享一次生产应用无法连接Oracle数据库故障
  8. OpenWrt网络结构
  9. LayaAir UI 组件 # Button 按钮
  10. wait()和sleep()区别(常见面试题)
  11. 添加控件并处理事件(纯手写)
  12. Sibelius 8 for Mac(西贝柳斯打谱软件)中文破解版
  13. Python办公自动化——8行代码实现文件去重
  14. C# sqlsugar依赖引用报错的问题解决
  15. Carbon —— 代码分享利器
  16. 小程序渲染层网络层错误404
  17. 分布式技术原理与实战45讲--05 第05讲:共识问题:区块链如何确认记账权?
  18. readmemh函数引用的txt格式_[转载](zz)用于读取和写入文本文件Verilog代码
  19. BlazeDS是什么?
  20. Android消息提醒

热门文章

  1. 辗转相除法的原理解析与实现
  2. Mac10.14.2删除自带ABC输入法(OK!)
  3. Android 编译报Run with --stacktrace option to get the stack trace
  4. 了解CSS混合,第1部分:变暗和变亮
  5. mac系统sourceTree链接阿里云code
  6. 谷歌开发者工具如何移动到屏幕底端
  7. 简历模板(供应届毕业生参考)
  8. ​LeetCode刷题实战535:TinyURL 的加密与解密
  9. 设备重启卡死问题分析-reboot卡死
  10. 详解【数据库】关系代数基本运算