天天看點

Ajax發送和擷取json資料到Spring mvc 1.spring mvc後端2.web前段

1.spring mvc後端

@ResponseBody
    	@PostMapping(value = "/setandgetjson")
    public Object setAndGetJson(@RequestBody User user,HttpServletResponse response)throws IOException{
        response.setHeader("Access-Control-Allow-Origin", "*");
        System.out.println("通路了setAndGetJson");
        System.out.println(user.toString());
        List list=new ArrayList();
        list.add(new User("李偉","123455"));
        list.add(new User("李偉33","5656"));
        Map<String, Object> map = new HashMap<>();
        map.put("list",list);
        return map;
    }      

2.web前段

$(".ajax2").click(function () {
    var basePath=$(".basepath").attr("name");
    var data={"userName": "henry", "password": "880058"};
    console.log(JSON.stringify(data));
    $.ajax({
        traditional:true,//這使json格式的字元不會被轉碼
        type: "post",
        url: basePath+"setandgetjson",
        contentType:'application/json;charset=utf-8',
        dataType:'json',	//	這個必須寫,要不然springmvc就不知道他是json格式的資料
        data:JSON.stringify(data),
        success: function (data) {
           console.log(data);
        },
        error: function (XMLHttpRequest, textStatus) {
            //這個error函數調試時非常有用,如果解析不正确,将會彈出錯誤框
            alert(XMLHttpRequest.getResponseHeader());
            alert(XMLHttpRequest.status);
            alert(XMLHttpRequest.readyState);
            alert(textStatus); // parser error;
        }
    });      
//此方法不能使spring mvc @RequestBody 資料綁定,會報415錯誤      
// $.post(basePath+"setandgetjson", {"userName": "henry", "password": "8800580.."}, function (data) {
    //     $('.tishi').html(data);
    // });
});