前台怎么拿参数的我就不管了我也不会

反正用这个ajax没错

ajax 代码   一定要写明http请求类型  {

contentType:"application/x-www-form-urlencoded; charset=utf-8", 

}这一段很重要(就是因为这个原因我找了整整一下午)

服务器为什么会对表单提交和文件上传做特殊处理,因为表单提交数据是名值对的方式,且Content-Type为application/x-www-form-urlencoded,

而文件上传服务器需要特殊处理,普通的post请求(Content-Type不是application/x-www-form-urlencoded)数据格式不固定,

不一定是名值对的方式,所以服务器无法知道具体的处理方式,所以只能通过获取原始数据流的方式来进行解析。

jquery在执行post请求时,会设置Content-Type为application/x-www-form-urlencoded,所以服务器能够正确解析,

而使用原生ajax请求时,如果不显示的设置Content-Type,那么默认是text/plain,这时服务器就不知道怎么解析数据了,

所以才只能通过获取原始数据流的方式来进行解析请求数据。

 function orderFood(){
alert("进来了++++++++++");
final_settle();
/* alert("http://192.168.10.98:8080/jeesite/f/cms/received/submit"); */
console.log(JSON.stringify(globalJsonArray));
$.ajax({
type : "post",
url : "/jeesite/f/received/submit",
dataType:"json",
contentType:"application/x-www-form-urlencoded; charset=utf-8",
data:{orderInfo:jsonStr},//JSON.stringify(globalJsonArray),
success : function(result) {
alert(result.msg);
}
});
}

后面接收的代码  写好方法名称还有请求类型

@Controller
@RequestMapping(value = "${frontPath}/received")
public class FrontReceivedata extends BaseController{ @RequestMapping(value = "submit",method =RequestMethod.POST)
public String submit(HttpServletRequest request,HttpServletResponse response){
String week = request.getParameter("orderInfo");
System.out.println("=====================================");
System.out.println("requestJson:"+week);
System.out.println("=====================================");

定几个全局变量  然后吧json转换成JSONObjcet格式(可以百度下格式)for循环下得到相应的值

最好加个判空的if

获取到了值放进那张表里保存的方法里面

for(int i = ;i<jsonArray.size(); i++){
//转换
//JSONObject list = jsonArray.getJSONObject(i);
JSONObject list = (JSONObject) jsonArray.get(i);
//各变量的if(){}
//测试值 S
System.out.println("orderList:"+orderList);
System.out.println("allpriice:"+allpriice);
System.out.println("num:"+num);
//判断为空
if(list.get("orderlist")!= null){
orderList = (JSONArray)list.get("orderlist");
}
if(list.get("allpriice") != null){
allpriice = (String)list.get("allpriice");
}
if(list.get("num") != null){
num = (String)list.get("num");
}
}
//把数据放进保存方法里面
WOrder worder = new WOrder();
String a="WXDC"; //订单号前缀
Date dt= new Date();
Long time= dt.getTime();//这就是距离1970年1月1日0点0分0秒的毫秒数
String SingleNumber=a+time; //完整订单号
worder.setCid(SingleNumber); //订单号
worder.setAmount(allpriice);//总金额
worder.setOrderNumber(num);//桌号
Worderservice.save(worder);

如果json里面有多个字段 就用两个for循环 循环出来 然后保存进指定的数据库表里

 if(orderList.size()!=){
for(int j= ;j<orderList.size();j++){
JSONObject orderInfo = (JSONObject) orderList.get(j);
//判断为空
if(orderInfo.get("number") != null){
number = (String)orderInfo.get("number");
}
if(orderInfo.get("foodid") != null){
foodid = (String)orderInfo.get("foodid");
}
System.out.println("number+++:"+number);
System.out.println("fooddid+++:"+foodid);
//数据保存方法
WChildorder wchildorder = new WChildorder();
wchildorder.setOid(SingleNumber); //订单号
wchildorder.setNumber(number);//分量
wchildorder.setDid(foodid);//菜的id
wchiservice.save(wchildorder); } }

最好抛个异常 让前台判断   返回的是一个map  不过返回的map 方法上面需要加@ResponseBody这个注释

 result.put("result", "保存成功");
result.put("code", "");
result.put("SingleNumber", SingleNumber);
} catch (Exception e) {
e.printStackTrace();
result.put("result", "保存失败");
result.put("code", "");
}
//返回的
return result;
}

到这就差不多了   自己写的过程中多测试测试    多写几个输出语句看有没有拿到值

还有的前台传过来json的格式一定要写完整规范  不然不好取出来

有的问题实在解决不了的就重启电脑 哈哈哈

ajax 发送json 后台接收 遍历保存进数据库的更多相关文章

  1. AJAX发送json,SpringMVC 接收JSON,@RequestBody

    需求:JQuery ajax前台,采用 POST请求 发送json,后台使用SpringMVC接收json并处理 前台: $.ajax({ url:"请求地址", type:&qu ...

  2. ajax参数传递与后台接收

    目录 ajax参数传递与后台接收 Servlet中读取http参数的方法 使用默认contentType,参数追加到url后传递 使用默认contentType,参数放到data中传递 使用默认con ...

  3. ajax 发送json数据时为什么需要设置contentType: "application/json”

    1. ajax发送json数据时设置contentType: "application/json”和不设置时到底有什么区别? contentType: "application/j ...

  4. ajax发送json数据时为什么需要设置contentType: "application/json”

    1. ajax发送json数据时设置contentType: "application/json”和不设置时到底有什么区别?contentType: "application/js ...

  5. Django中数据传输编码格式、ajax发送json数据、ajax发送文件、django序列化组件、ajax结合sweetalert做二次弹窗、批量增加数据

    前后端传输数据的编码格式(contentType) 提交post请求的两种方式: form表单 ajax请求 前后端传输数据的编码格式 urlencoded formdata(form表单里的) ja ...

  6. ajax发送json格式与文件数据、django自带的序列化器(了解)

    上期内容回顾 聚合查询和分组查询 # 聚合查询 max min sum avg count # 查询关键字:aggregate from django.db.models import Max, Mi ...

  7. 怎样提交FIREDAC数据集的DELTA到中间件然后保存进数据库

    你可以在客户端序列FireDAC数据集的DELTA , 将序列后的STREAM发送给中间件, 中间件的TFDQuery或TFDMemTable调用LOADFROMSTREAM()方法加载流, 然后调用 ...

  8. Java 读取Excel内容并保存进数据库

    读取Excel中内容,并保存进数据库 步骤 建立数据库连接 读取文件内容 (fileInputStream 放进POI的对应Excel读取接口,实现Excel文件读取) 获取文件各种内容(总列数,总行 ...

  9. python 全栈开发,Day75(Django与Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传,SweetAlert插件)

    昨日内容回顾 基于对象的跨表查询 正向查询:关联属性在A表中,所以A对象找关联B表数据,正向查询 反向查询:关联属性在A表中,所以B对象找A对象,反向查询 一对多: 按字段:xx book ----- ...

随机推荐

  1. JDBC的链接及封装

    导入 mysql 的jar包 jar包:可以直接拿来用,又不想我们看到源代码   sql语句 一定注意:当update,delete时 一定注意where 条件,一定要写!!! public stat ...

  2. MAC 上传文件到github

    在IOS中,经常需要上传文件到github.以桌面上的一个文件夹为例: 步骤1: cd 到该文件夹下,建立POD文件. $ cd /Users/andy/Desktop/openinstallSDK ...

  3. 传参时Url中有中文报错

    url中如果传了中文,浏览器会报错:The header content contains invalid characters. 原因:浏览器自动把这个url进行decodeURIComponent ...

  4. C语言:min和max头文件

    转自:http://www.cppblog.com/jince/archive/2010/09/14/126600.html min和max头文件 虽然说求最大值最小值函数在哪个头文件下并不是非常重要 ...

  5. Java基础---多态、内部类、异常、包

    第一讲     多态 多态可以理解为事物存在的多种体现形态. 例:动物中猫,狗.猫这个对象对应的类型是猫类型,如:猫 x = new猫(); 同时猫也是动物中的一种,也可以把猫称为动物.动物  y = ...

  6. QQ无法通过ISA2006&TMG2010代理收发图片问题解决

    近期公司有业务需求通过TMG访问QQ,但配置多次均无法通过QQ收发图片,文字输入正常. 目前已解决,供参考: 这个问题是SSL端口默认使用了443,但QQ的离线文件不使用这个端口.所以ISA会把QQ的 ...

  7. C++中4个类型转换相关的关键字/特点/应用场合

    reinterpret_cast是C++里面的一个强制类型转换符,能够将任何的指针类型转换成其他的任何指针类型:能够将任何的整数类型转换成指针类型,反之亦然:滥用reinterpret_cast强制类 ...

  8. 全平台轻量级 Verilog 编译器 & 仿真环境

    一直苦于 modelsim 没有Mac版本,且其体量过大,在学习verilog 时不方便使用. 终于找到一组轻量级且全平台 ( Linux+Windows+macOS ) 的编译仿真工具组. Icar ...

  9. 我来给.Net设计一款HttpClient

    1前言 时间飞快,转眼半年,碌碌无为,眼下就要三十而立,回想三年前的今天,我将NetworkSocket库开放到github,一直在更新与学习,不求有这个库能有多好,只求自己在过程能成长,将领悟到一些 ...

  10. 基于JZ2440开发板编写bootloader总结(一)

    凡走过必留下痕迹,学点什么都会有用的. 本系列博文总结了自己在学习嵌入式Linux编程过程中的收获,若有错误,恳请指正,谢谢! --参考教材韦东山系列教材 bootloader 是一个用于启动linu ...