如何处理Get请求参数过长
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请求参数过长相关推荐
- ajax请求到参数太大获取参数失败问题,Ajax请求参数较长导致请求失败
Ajax请求参数比较长,第5行参数大概1100个字符吧,是接口的请求报文. $.ajax({ type:"POST", url:"${ctx}/test.action?m ...
- 【实习】解决请求参数过长问题
又要解决bug啦!!! 由于前端传过来的json数据过长导致请求参数太长,最后出现空指针异常. HTTP/1.1 414 Request-URI Too Large 解决方法: 参考:Java使用GZ ...
- springboot post 请求参数过长请求接口报错 An HTTP line is larger than 4096 bytes
springboot项目post请求参数过长请求接口报错如下: 解决办法将post请求参数值调大: server:tomcat:max-http-form-post-size: 5MB
- 解决Springboot GET请求参数过长的情况
项目场景: 使用Spring Boot进行项目开发,解决Springboot GET请求参数过长的情况 问题描述 报错信息:Springboot GET请求参数过长抛出异常:Request heade ...
- solr 请求参数过长报错,Solr配置maxBooleanClauses属性不生效原因分析
博客分类: 上次已经写过一篇关于solr中,查询条件过多的异常的文章,这次在总结扩展一下: 有时候我们的查询条件会非常多,由于solr的booleanquery默认设置的条件数为1024,所以超过这个 ...
- curl --- post请求参数过长(超过1024B)时请求失败
今天发curl时,报错Argument list too long curl -H "Content-Type: application/json " -iv -X POST -d ...
- 解决Springboot get请求是参数过长的情况
解决Springboot get请求是参数过长的情况 问题原因 Springboot get请求是参数过长抛出异常:Request header is too large 的问题 错误描述 java. ...
- java rsa加密解密_前端实现对请求参数进行RSA加密amp;解密,针对字符串过长进行分段加密amp;分段解密的处理...
前言 在需求开发中,为了安全起见,我们都会难免遇到需要对一些敏感参数进行加密或者解密.所以,今天给大家分享的就是使用jsencrypt对请求参数进行RSA加密与解密,发这篇文章其实主要因为近期我的一位 ...
- Tornado请求分析request, 获取请求参数
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 请求分析request WEB请求的那些事 这节中,我们来根据客户请求报文中的请求行(Request line) ,请求头部(Request Head ...
最新文章
- 20165302第八周总结
- LFFD ncnn torch
- Java 三大特性 —— 多态
- java做 binggo,Linux启动与停止spring boot工程的脚本示例
- 图像超分辨率(Super-Resolution)技术研究
- vue--配套axios用法
- 分享一次生产应用无法连接Oracle数据库故障
- OpenWrt网络结构
- LayaAir UI 组件 # Button 按钮
- wait()和sleep()区别(常见面试题)
- 添加控件并处理事件(纯手写)
- Sibelius 8 for Mac(西贝柳斯打谱软件)中文破解版
- Python办公自动化——8行代码实现文件去重
- C# sqlsugar依赖引用报错的问题解决
- Carbon —— 代码分享利器
- 小程序渲染层网络层错误404
- 分布式技术原理与实战45讲--05 第05讲:共识问题:区块链如何确认记账权?
- readmemh函数引用的txt格式_[转载](zz)用于读取和写入文本文件Verilog代码
- BlazeDS是什么?
- Android消息提醒