场景

前端使用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相关推荐

  1. 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: ...

  2. 绝对好用,解决: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 ...

  3. 异常: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 参考文章: ...

  4. 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 ...

  5. 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 ...

  6. Jquery中使用ajax请求SSM后台时提示:org.springframework.http.converter.HttpMessageNotReadableException: Could no

    场景 Jquery中使用ajax向SSM后台请求数据时提示: org.springframework.http.converter.HttpMessageNotReadableException: C ...

  7. 【JavaScript问题】JavaScript 请求后台报错 Invalid character found in the request target

    文章目录 问题描述 问题分析 解决方法 微信公众号 问题描述 开发中,遇到这么一个问题,前端使用get方式请求SpringMVC的后台控制层方法,但是直接没有进方法断点,就报错了 java.lang. ...

  8. 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 线上环境中 ...

  9. Ajax请求SSM后台传值方式踩坑

    场景 在Ajax请求接口返回结果后,再次请求后台Controller.原来代码 $("#book").submit(function() {if($(this).Andrew_Va ...

最新文章

  1. 微信小程序 app.json 详细介绍
  2. VS2010 error RC2170: bitmap file xxx.png is not in 3.00 format
  3. 华为鸿蒙系统新机发布时间,华为鸿蒙OS发布会定档,或将有多款新机亮相
  4. 服务器虚拟主机划分,服务器划分虚拟主机教程
  5. 【C++】Visual Studio教程(十) - 初步了解 Visual Studio IDE
  6. 《美团点评编程题》整数加法
  7. org.apache.maven.archiver.MavenArchiver.getManifest
  8. 技术分享 | 使用 mPaaS 配置 SM2 国密加密指南
  9. android布局时长分析,Android性能优化:布局优化 详细解析(含、、讲解 )
  10. java 链表_java数据结构与算法之顺序表与链表深入分析(一)
  11. 在图论中,网络流(Network Flow)
  12. 解决VIM打开U盘文件中文乱码的问题以及VIM有用的配置
  13. Excel如何快速方便生成随机姓名
  14. Intent中putExtra()方法用法
  15. Binomial Coefficient(二项式系数)的计算
  16. 读取MoleBox打包的可执行文件中的数据文件一法
  17. RPG Maker的引擎分析(一)
  18. 移动硬盘加密后在linux中如何使用方法,移动硬盘加密的方法你都知道吗?
  19. PTA 7-2 复数计算
  20. 百汇BCR:什么是外汇交易风险?如何尽量减少风险影响?

热门文章

  1. maven中packaging的三个属性值pom、jar、war
  2. mysql frm恢复数据_MYSQL使用.frm恢复数据表结构的实现方法
  3. 聊聊分布式锁——Redis和Redisson的方式
  4. 7 pe系统安装_【软件课程之家】PE系统安装教程
  5. python用电预测_Python中利用长短期记忆模型LSTM进行时间序列预测分析-预测电力消耗数据...
  6. python networkx进行最短路径分析_NetworkX vs Scipy所有最短路径算法
  7. 计算机语言 时间,甲骨文将ISO日期到计算机的语言环境日期/时间
  8. android关机菜单修改,Android4.4关机菜单添加重启系列选项
  9. python的难点_初学python的操作难点总结(新手必看篇)
  10. devserver配置_vue.config.js的配置