使用ajax请求controller
前端js
$.ajax({
url: "/test1",
data: {"first": "1111",
"second":"2222"
},
type: "POST",
dataType: "json",
success: function(msg) {
var dataJson = JSON.stringify(msg)
var json1=JSON.parse(dataJson);
var head=json1.head;
if(msg!=null)
alert(head);
},});
url:后端映射地址
type:交换数据类型
success:请求成功的回调函数
后端controller
@Controller
public class TestAjax {
@PostMapping("test1")
@ResponseBody
String Test1(@RequestParam(value = "first", required = false)String msg1,
@RequestParam(value = "second", required = false)String msg2){
System.out.println(msg1);
System.out.println(msg2);
JSONObject jsonObject=new JSONObject();
jsonObject.put("head","success");
return JSONObject.toJSONString(jsonObject);
}
}/*结果输出1111
2222*/
添加注解 @ResponseBody返回数据给当前页面而不是跳转
@RequestParam(value = “first”, required = false)注解用于获取ajax中data内的参数,其中value为data中键值对(key,value)中的value的
注意要点
后端返回为字符串
如下
String xxx(){
XXX;
return JSONObject.toJSONString(jsonObject);}//jsonObject为json对象
前端接收数据为
success: function(msg) {//msg为直接可以使用的json对象,不需要进行转换。。。猜测可能是ajax中确定了
var head=msg.head; //数据格式为json所有不需要再次转换(再次转换反而会出错)
if(msg!=null)
alert(head);
}
前端处理json方法
var dataJson = JSON.stringify(xxx);//该方法作用为将json对象转换为json字符串
var json1=JSON.parse(xxx);//该方法作用为将json字符串转换为json对象
//两个方法效果相反