tomcat 9 请求出现RFC 7230 and RFC3986的错误 ,坑,解决办法

日常开发中经常遇到一些莫名其妙的小问题,例如即将上线的项目在线上异常报错,但是在本地确可以正常运行。

但通过IE来访问的话,往往这猝不及防的小惊喜,真是让我们猿猿欲哭无泪啊。

这里简单总结一下在IE浏览器上遇到的一个小坑,之前就因为这个小坑,着实慌了一把。

Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986,

这句话的大致意思就是说请求头中包含了 RFC 7230 and RFC 3986规范中定义的非法字符。在这种情况下就会导致页面报400异常。 

解决方法:

var _url=path+"/dmaction/getGsList?jsr="+jsr+"&&v=1";
	_url=encodeURI(encodeURI(_url));
	$.ajax({
		type : "Post",
		url : _url,
		sync: false,//同步上传
		cache: false,//上传文件无需缓存
		processData: false,  // 不处理数据
		contentType: false, // 不设置内容类型
		dataType : "json",
		success : function(data) {
				 
		}
	});

_url=encodeURI(encodeURI(_url)); 进行编码操作

在Controller中进行解码操作。

@RequestMapping("/getGsList")
	@ResponseBody
	public List<StudentBean> getGsList(HttpServletRequest request, @RequestParam String jsr)throws Exception{

		//解决IE浏览器中文  RFC 7230 and RFC 3986
		jsr=URLDecoder.decode(jsr,"UTF-8");
}

这样,无论在IE、极速浏览器中,都不用担心在报此错误了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值