一.傳json單值或對象前端
1.前端java
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.後端git
//當作單值 @RequestMapping(value = "save", method = {RequestMethod.POST }}) @ResponseBody public void save(@RequestParam int id,String name) { //這裏字段要跟前端一致,@RequsetParam 能夠不加,默認調用的就是它 } //當作對象 @RequestMapping(value = "save", method = {RequestMethod.POST }}) @ResponseBody public void save(User user) { //前端字段跟對象屬性一致 //自動轉化成改對象 }
二.json對象轉成字符串後傳值web
1.一、前端ajax
$.ajax({ type:"POST", url:"user/saveUser", dataType:"json", contentType:"application/json", //需添加這個頭 data:JSON.stringify(data), //發送請求的數據在request payload success:function(data){ } });
1.二、後端正則表達式
//當作對象 @RequestMapping(value = "save", method = {RequestMethod.POST }}) @ResponseBody public void save(@RequestBody User user) { //需添加RequestBody註解 //自動轉化成改對象 }
三.將對象JSON.stringify後,以第一種方式傳遞,可實現對象中存對象 {'userList':users,'key1':value1}spring
1.前臺json
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.後臺gulp
//當作單值 @RequestMapping(value = "save", method = {RequestMethod.POST }}) @ResponseBody public void save(@RequestParam String user,String goods) { //這裏字段要跟前端一致,@RequsetParam 能夠不加,默認調用的就是它 User u= JSON.parseObject(user, User .class);//alibaba.fastjson轉換成對象 } //當作對象 @RequestMapping(value = "save", method = {RequestMethod.POST }}) @ResponseBody public 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); } })
後臺
1
2
3
4
5
6
7
8
|
@PostMapping(
"/names/validation"
)
@ResponseBody
public
List<String> validateUserName(String[] names){
List<String> 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
· jquey的 ajax請求的幾種方式
· Ajax請求SpringMVC
· SpringMVC的幾種返回方式
· 前端向後臺發送請求有幾種方式?
· springmvc跳轉的幾種方式
· 中國移動的eSIM支持Apple Watch了,這7個城市下週就能用上
· Magic Leap在中國首次發聲:觸手可及的虛擬,和必將抵達的現實
· 你離成爲頂尖成功人士,只差這12個特質
· Google Maps限速提示功能開始在美國各地上線
· Purism宣佈推出PureOS應用商店
» 更多新聞...