前后端传递Json的几种方式

方式 1. : 转成JSONObject再toString()  用 HttpServletResponse 的 out 返回  

参数里设置 HttpHttpServletRequest request  HttpServletResponse response 

后台代码片 :

@RequestMapping(value="/haha")

public string xxx { HttpHttpServletRequest request,HttpServletResponse response} 
{     JSONObject json =new JSONObject();
      json.put("result"," success")
      response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
      PrintWriter out = null;
      out = response.getWriter();
      out.write(json.toString()); 
}

前端 : 

$.ajax({
data : {
// userNameOrTel: $("#user").val(),
// password: $("#pwd").val()
},
type : "post",  
url : "admin/login/",
dataType : "json",
contentType : "application/json;charset=utf-8", 
async : false,  //同步 异步
success : function(data) {
    debugger; 
}
}
});

方式 2:  @ResponseBody 注解 

@ResponseBody 
@RequestMapping(value="/haha")
public Msg xxx {} 
{  return msg }

$.ajax({
data : {
// userNameOrTel: $("#name").val(),
// password: $("#pwd").val()
},
type : "post",
url : "haha",
dataType : "json",
//contentType : "application/json;charset=utf-8", // 区别在这里,不要加,不然接收不到请求参数
async : false,   //同步异步
success : function(msg) {
debugger;}}});

 

方式 3 :  @RestController 类注解 (此类里的所以方法返回值都是 Json) 

拓展知识  当遇到 ajax 请求参数必须是Json 格式的话如下 : 

前端 ajax :用JSON.stringify() 转换请求参数

data:JSON.stringify({'channelId':channelId}),
                  success:function(data){
                        alert(data.channelId);
                  },

contentType:'application/json;charset=utf-8'

后台 : 

@RequestMapping(value="/login",produces="application/json;charset=UTF-8") @ResponseBody public String test2() {  } 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值