场景

在Ajax请求接口返回结果后,再次请求后台Controller。原来代码

$("#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;});

避免踩坑

后台Controller返回的是对象,直接接受后使用

  window.location.href = "${ctx}/frontPage/passFlight/GJbookPay.html?orderId="+data.result;

是不行的会提示

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

如果是只传递一个参数比如ID等则就可以。

修改为:

$("#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后台传值方式踩坑相关推荐

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

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

  2. 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 i ...

  3. 前台发送 ajax 请求到后台传递数组参数

    前台发送 ajax 请求到后台,发现直接传递数组,后台是接收不到的,需要 ajax 加上一个 traditional 属性 var arr = ["a","b" ...

  4. IE浏览器中访问jsp页面,页面不执行ajax请求,后台控制台报错

    问题描述:IE浏览器中访问jsp页面,页面不执行ajax请求,后台控制台报错:java.lang.IllegalArgumentException: Invalid character found i ...

  5. 前台ajax请求php后台返回成功却进error方法解决

    前台ajax请求php后台返回成功却进error方法解决 参考文章: (1)前台ajax请求php后台返回成功却进error方法解决 (2)https://www.cnblogs.com/anniey ...

  6. 使用ajax async,Ajax请求async有哪些方式?应该如何使用

    这次给大家带来Ajax请求async有哪些方式?应该如何使用,Ajax请求async的注意事项有哪些,下面就是实战案例,一起来看一下. test.html代码: asy.js代码:function t ...

  7. ajax 取值 返回map_springboot|前端发ajax请求到后台Controller及常见的坑

    前端发ajax请求 这块是web的基础,发web请求大概需要以下几步1.引用web相关的依赖2.前端页面引入jquery.js3.编写ajax请求4.编写对应的Controller 引入web相关的依 ...

  8. jQuery发送含有数组参数的ajax请求以及后台Struts2的OGNL解析错误

    当使用jquery1.3以上版本时,进行ajax参数传值时,会出现以下的一个错误: ognl.ExpressionSyntaxException: Malformed OGNL expression: ...

  9. java后台处理ajax请求_java后台怎么对ajax请求的内容进行xss转义?

    找了几个java后台拦截xss的代码,大致都是下面这样 package com.ibm.web.beans; import java.util.Enumeration; import javax.se ...

最新文章

  1. linux读取每条内存使用,Linux c读取系统内存使用信息
  2. C# .net web.config配置access连接字符串
  3. BOOST内存管理(二) --- boost::pool
  4. T-SQL | 你需要了解的执行计划
  5. CSS属性之attr()
  6. Quartz2D指定显示范围
  7. 分享实录 | 企业CICD规模化落地浅析
  8. Java学习前,需要掌握的一些基础知识
  9. C#中采用SHA1或MD5加密字符串的函数
  10. Python常用运算符含义与用法演示
  11. python基础系列教程——数据结构(列表、元组、字典、集合、链表)
  12. Android常见音频通路(十四)
  13. 系统运维包括哪些内容_UI设计内容包括哪些?
  14. c#【 网络日志解析工具】开发篇-【媒体预览功能】--base64,webp响应解码为图片-》可做复制base64进行图片查看
  15. ZPL效果在线打印测试和相关手册及编程语言资料
  16. AE快速输出GIF动图格式插件:GifGun for Mac(支持ae2022)
  17. tp框架中构造函数__construct()与初始化函数_initialize()的区别
  18. 网站支付宝登录授权具体实现
  19. 修改win10更新服务器,修改win10更新服务器地址
  20. 【多元统计分析】Python实现对应分析

热门文章

  1. 每天学一点儿shell:shell字符串变量的基本操作
  2. Git提交代码时报 Please tell me who you are
  3. mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...
  4. QString之arg用法
  5. python手机销售系统详细设计_数据库详细设计文档 .doc
  6. kylin安装mysql_源码安装mysql
  7. sql 发送邮件网络附件_利用VBA发送附件电子邮件
  8. windows 搭建kms服务器激活_自建KMS激活服务器的两种方法
  9. swoole不是php,Swoole
  10. 石大在线c语言在线考试填空题答案,奥鹏石大远程在线考试《钻井工程》-参考答案...