前端ajax怎么请求Java的包_springmvc 前端 发ajax请求的几种方式

一.传json单值或对象

1.前端

1 var data = {'id':id,'name':name};2 $.ajax({3 type:"POST",4 url:"user/saveUser",5 dataType:"json",6 //contentType:"application/json", //不能添加这个头

7 data:data, //这里不能进行JSON.stringify,发送请求的数据在:form data

8 success:function(data){9

10 }11 });

2.后端

//看成单值

@RequestMapping(value = "save", method ={RequestMethod.POST }})

@ResponseBodypublic void save(@RequestParam int id,String name) { //这里字段要跟前端一致,@RequsetParam 可以不加,默认调用的就是它

}//看成对象

@RequestMapping(value = "save", method ={RequestMethod.POST }})

@ResponseBodypublic void save(User user) { //前端字段跟对象属性一致//自动转化成改对象

}

二.json对象转成字符串后传值

1.1、前端

$.ajax({

type:"POST",

url:"user/saveUser",

dataType:"json",

contentType:"application/json", //需添加这个头

data:JSON.stringify(data), //发送请求的数据在request payload

success:function(data){

}

});

1.2、后端

//看成对象

@RequestMapping(value = "save", method ={RequestMethod.POST }})

@ResponseBodypublic void save(@RequestBody User user) { //需添加RequestBody注解//自动转化成改对象

}

三.将对象JSON.stringify后,以第一种方式传递,可实现对象中存对象 {'userList':users,'key1':value1}

1.前台

var user = {'id':id,'name':name};var jsonStrGoods = JSON.stringify({'gid':gid,...});

$.ajax({

type:"POST",

url:"user/saveUser",

dataType:"json",//contentType:"application/json", //不添加这个头

data:{'user':JSON.stringify(user),'goods':jsonStrGoods }, //发送请求的数据在request payload

success:function(data){

}

});

2.后台

//看成单值

@RequestMapping(value = "save", method ={RequestMethod.POST }})

@ResponseBodypublic void save(@RequestParam String user,String goods) { //这里字段要跟前端一致,@RequsetParam 可以不加,默认调用的就是它

User u= JSON.parseObject(user, User .class);//alibaba.fastjson转换成对象

}//看成对象

@RequestMapping(value = "save", method ={RequestMethod.POST }})

@ResponseBodypublic void save(UserAndGoods ug) { //没试过,猜测应该是这样,前端字段跟对象属性一致//自动转化成改对象

}

传数组

前台

var arr = str.split(',');

$.ajax({

url:'/appollo-console/manage/user/names/validation',

data:{

names:arr

},

traditional:true,//必须

type:'post',

dataType:'json',

success:function(res){

alert(res);

}

})

后台

@PostMapping("/names/validation")

@ResponseBody

public List validateUserName(String[] names){

List notValidNames = Lists.newArrayList();

notValidNames = userService.findNotValidNames(Arrays.asList(names));

return notValidNames;

}

总结:1.如果用JSON.stringify()将对象转成字符串,就需要在ajax请求中指定contentType 为 application/json,且后台需添加 @RequestBody注解;

2.如果直接传json对象则跟上面的相反,不能指定contentType为 application/json,其默认类型是 application/x-www-form-urlencoded

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值