Ajax请求SSM后台时提示:Invalid character found in the request target. The valid characters are defined in RF
场景
前端使用SSM请求后台时提示:
Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
前端请求如下
$("#book").submit(function() {if($(this).Andrew_Validate("submit_Validate")){$("#book > button:submit").attr("disabled","disabled").text("订单提交中...");$('#clause').attr("disabled","disabled");var actionurl = $(this).attr("action"); //提交路径var data = $(this).serialize();console.log(data);$.ajax({async : true,cache : false,type : 'POST',url : actionurl,data : data,success : function(data) {if("200"==data.statusCode){//请求成功window.location.href = "${ctx}/frontPage/passFlight/GJbookPay.html?orderId="+data.result;}if("300"==data.statusCode){$("#book > button:submit").removeAttr("disabled","disabled").text("下一步,去支付");$('#clause').removeAttr("disabled","disabled");if(-1==data.result){//请求失败处理函数webToast(data.message, "middle", "mask", 1000);}else{var contactName=$("#contactName").val();var contactAreaCode=$("#contactAreaCode").val();var contactAreaMobile=$("#contactAreaMobile").val();var email=$("#email").val();var phone=$("#phone").val();var contactCookie = $.cookie("bus__contact");//将联系人信息存储到cookie中if(contactCookie && contactCookie!=""){//查看是否是当前登录用户的填写信息contactCookies=contactCookie.split(";"); //字符分割var tempCookie;for(j = 0; j < contactCookies.length; j++) { tempCookie=contactCookies[j].split(",");if(tempCookie[4]==phone){var s=contactName+','+contactAreaCode+','+contactAreaMobile+','+email+','+phone;contactCookies.splice(j,1,s);$.cookie('bus__contact',contactCookies);}else{var contactResult=contactCookie+";"+contactName+','+contactAreaCode+','+contactAreaMobile+','+email+','+phone;$.cookie('bus__contact',contactResult);}}}else{var contactResult=contactName+','+contactAreaCode+','+contactAreaMobile+','+email+','+phone;$.cookie('bus__contact',contactResult);}Andrew_Popupwin({dom: "#login_dialog_plug_popupWin", //弹窗内容的布局position: "middle", //位置类型(top,bottom,left,right,middle)effectIn: "bounceInDown", //弹窗显示效果effectOut: "bounceOutDown", //弹窗消失效果maskPosition:"11", //Mask的z-index数值closeBtn: ".login_dialog_plugin_close" //关闭弹窗按钮})}}},error : function(err) {$("#book > button:submit").removeAttr("disabled","disabled").text("下一步,去支付");$('#clause').removeAttr("disabled","disabled");//请求失败处理函数webToast("请求错误", "middle", "mask", 1000);}});}return false;});
后台SSM代码如下:
@ResponseBody@RequestMapping(value = "/GJbookPayValidate", method = RequestMethod.POST)public Map<String,Object> GJbookPayValidate(PiaoHouGJBookInfoPayViewModel model){try {//登录账户验证部分BaseSubjectModel bsm = SubjectUtil.validate(this.getClass(),loginType,"机票预订失败:");if(!bsm.isFlag()) {return bsm.getJsonResult();}//业务部分return this.service.getGJBookPayValidateJson(model,bsm);}catch (Exception e) {LogService.getInstance(this).debug("机票预订失败:"+Status.UNKNOWN_SESSION_EXCEPTION.toString()+e.getMessage());return JsonResult.jsonWsReturn(Status.ERROR.getCode(), Status.ERROR.getDescriptionZh(), Status.ERROR.getCode());}}
在 业务中封装参数的方法:
private static Map<String, Object> setJsonObj(int statusCode, String msg) {Map<String, Object> jsonObj = new HashMap<String, Object>();switch (statusCode) {case 200:jsonObj.put("statusCode", "200");jsonObj.put("message", msg == null ? "操作成功" : msg);break;case 300:jsonObj.put("statusCode", "300");jsonObj.put("message", msg == null ? "操作失败" : msg);break;}return jsonObj;}
实现
可以确定的是在接口请求与返回数据时出现问题。
仔细观察上面的代码就会发现问题:
第一次请求验证接口时返回的结果是一个对象,再次请求时使用
window.location.href = "${ctx}/frontPage/passFlight/GJbookPay.html?orderId="+data.result;
而data.result是一个对象,显然这样是不行的,修改为:
$("#book").submit(function() {if($(this).Andrew_Validate("submit_Validate")){$("#book > button:submit").attr("disabled","disabled").text("订单提交中...");$('#clause').attr("disabled","disabled");var actionurl = $(this).attr("action"); //提交路径var data = $(this).serialize();console.log(data);$.ajax({async : true,cache : false,type : 'POST',url : actionurl,data : data,success : function(data) {debuggerif("200"==data.statusCode){debugger$.ajax({async : true,cache : false,type : 'POST',url : "${ctx}/frontPage/passFlight/GJbookPay.html",data : data.result});//window.location.href = "${ctx}/frontPage/passFlight/GJbookPay.html?orderId="+data.result;}if("300"==data.statusCode){$("#book > button:submit").removeAttr("disabled","disabled").text("下一步,去支付");$('#clause').removeAttr("disabled","disabled");if(-1==data.result){//请求失败处理函数webToast(data.message, "middle", "mask", 1000);}else{var contactName=$("#contactName").val();var contactAreaCode=$("#contactAreaCode").val();var contactAreaMobile=$("#contactAreaMobile").val();var email=$("#email").val();var phone=$("#phone").val();var contactCookie = $.cookie("bus__contact");//将联系人信息存储到cookie中if(contactCookie && contactCookie!=""){//查看是否是当前登录用户的填写信息contactCookies=contactCookie.split(";"); //字符分割var tempCookie;for(j = 0; j < contactCookies.length; j++) { tempCookie=contactCookies[j].split(",");if(tempCookie[4]==phone){var s=contactName+','+contactAreaCode+','+contactAreaMobile+','+email+','+phone;contactCookies.splice(j,1,s);$.cookie('bus__contact',contactCookies);}else{var contactResult=contactCookie+";"+contactName+','+contactAreaCode+','+contactAreaMobile+','+email+','+phone;$.cookie('bus__contact',contactResult);}}}else{var contactResult=contactName+','+contactAreaCode+','+contactAreaMobile+','+email+','+phone;$.cookie('bus__contact',contactResult);}Andrew_Popupwin({dom: "#login_dialog_plug_popupWin", //弹窗内容的布局position: "middle", //位置类型(top,bottom,left,right,middle)effectIn: "bounceInDown", //弹窗显示效果effectOut: "bounceOutDown", //弹窗消失效果maskPosition:"11", //Mask的z-index数值closeBtn: ".login_dialog_plugin_close" //关闭弹窗按钮})}}},error : function(err) {$("#book > button:submit").removeAttr("disabled","disabled").text("下一步,去支付");$('#clause').removeAttr("disabled","disabled");//请求失败处理函数webToast("请求错误", "middle", "mask", 1000);}});}return false;});
Ajax请求SSM后台时提示:Invalid character found in the request target. The valid characters are defined in RF相关推荐
- Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC
转载:(http://blog.csdn.net/zeroso/article/details/70592179) 错误现象: java.lang.IllegalArgumentException: ...
- 绝对好用,解决:Invalid character found in the request target. The valid characters are defined。。。
项目场景: 项目运行中出现的问题 Invalid character found in the request target. The valid characters are defined in ...
- 异常:Invalid character found in the request target. The valid characters are defined in RFC 3986
异常:Invalid character found in the request target. The valid characters are defined in RFC 3986 参考文章: ...
- Invalid character found in the request target .The valid characters are defined in RFC 7230 and RFC
问题: [https-jsse-nio-443-exec-9] INFO org.apache.coyote.http11.Http11Processor - Error parsing HTTP r ...
- Invalid character found in the request target. The valid characters are defi
解决Invalid character found in the request target. The valid characters are defined in RFC 7230 and RF ...
- Jquery中使用ajax请求SSM后台时提示:org.springframework.http.converter.HttpMessageNotReadableException: Could no
场景 Jquery中使用ajax向SSM后台请求数据时提示: org.springframework.http.converter.HttpMessageNotReadableException: C ...
- 【JavaScript问题】JavaScript 请求后台报错 Invalid character found in the request target
文章目录 问题描述 问题分析 解决方法 微信公众号 问题描述 开发中,遇到这么一个问题,前端使用get方式请求SpringMVC的后台控制层方法,但是直接没有进方法断点,就报错了 java.lang. ...
- java.lang.IllegalArgumentException: Invalid character found in the request target. The valid charact
Tomcat IllegalArgumentException(Invalid character found in the request target) 问题解决 2018-09-06 线上环境中 ...
- Ajax请求SSM后台传值方式踩坑
场景 在Ajax请求接口返回结果后,再次请求后台Controller.原来代码 $("#book").submit(function() {if($(this).Andrew_Va ...
最新文章
- 微信小程序 app.json 详细介绍
- VS2010 error RC2170: bitmap file xxx.png is not in 3.00 format
- 华为鸿蒙系统新机发布时间,华为鸿蒙OS发布会定档,或将有多款新机亮相
- 服务器虚拟主机划分,服务器划分虚拟主机教程
- 【C++】Visual Studio教程(十) - 初步了解 Visual Studio IDE
- 《美团点评编程题》整数加法
- org.apache.maven.archiver.MavenArchiver.getManifest
- 技术分享 | 使用 mPaaS 配置 SM2 国密加密指南
- android布局时长分析,Android性能优化:布局优化 详细解析(含、、讲解 )
- java 链表_java数据结构与算法之顺序表与链表深入分析(一)
- 在图论中,网络流(Network Flow)
- 解决VIM打开U盘文件中文乱码的问题以及VIM有用的配置
- Excel如何快速方便生成随机姓名
- Intent中putExtra()方法用法
- Binomial Coefficient(二项式系数)的计算
- 读取MoleBox打包的可执行文件中的数据文件一法
- RPG Maker的引擎分析(一)
- 移动硬盘加密后在linux中如何使用方法,移动硬盘加密的方法你都知道吗?
- PTA 7-2 复数计算
- 百汇BCR:什么是外汇交易风险?如何尽量减少风险影响?
热门文章
- maven中packaging的三个属性值pom、jar、war
- mysql frm恢复数据_MYSQL使用.frm恢复数据表结构的实现方法
- 聊聊分布式锁——Redis和Redisson的方式
- 7 pe系统安装_【软件课程之家】PE系统安装教程
- python用电预测_Python中利用长短期记忆模型LSTM进行时间序列预测分析-预测电力消耗数据...
- python networkx进行最短路径分析_NetworkX vs Scipy所有最短路径算法
- 计算机语言 时间,甲骨文将ISO日期到计算机的语言环境日期/时间
- android关机菜单修改,Android4.4关机菜单添加重启系列选项
- python的难点_初学python的操作难点总结(新手必看篇)
- devserver配置_vue.config.js的配置