ajax post get发送json

 
 
//post请求发送json(必须使用JSON.stringfy()转为json)   controller接受用map @RequestBody HashMap map)
/*var object = new Object();
object.eventTrackingType = eventTrackingType;
object.beginDate = beginDate;
object.endDate = endDate;
object.menuName = menuName;
var s = JSON.stringify(value);*/
var param = {
    eventTrackingType: eventTrackingType,
    beginDate: beginDate,
    endDate: endDate,
    menuName: menuName
};
$.ajax({
    type: "POST",
    contentType: 'application/json; charset=UTF-8',
    dataType: "json",
    url: "getEventTrackingList",  //注意url和下面的data顺序写反了,ajax就不能请求成功
    data: JSON.stringify(param), //或者直接 s,结束
    async: true,
    success: function (ret) {
        hidediv();
        $('#tabledata').dataTable().fnClearTable();   //将数据清除
        if(ret.code==200){
            if(ret.list!=null && ret.list.length>0 ){
                $('#tabledata').dataTable().fnAddData(ret.list);
            }else{
                return;
            }
        }else{
            return;
        }
    },
    error: function (ret) {
    }
});
data中,将json对象序列化。使用JSON.stringfy()函数
$.ajax({
   type: "POST",
   contentType: 'application/json; charset=UTF-8',
   dataType: "json",
   data:JSON.stringify({siteKey:siteKey}),

//get请求发json

$.ajax({
    type: "GET",
    contentType: 'application/json; charset=UTF-8',
    // dataType: "json",
    url: "getMenuNoRepeat",
    data: {
        eventTrackingType: eventTrackingType
    },
    async: true,
    success: function (ret) {
        var html=choice;
        for(var i=0;i< ret.length;i++){
            html=html+"<option value='"+ret[i]+"'>"+ret[i]+"</option>";
        }
        $("#menuNames").append(html);
        $('#menuNames').comboSelect();
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        console.log("no");
    }
});


如下情况: 返回的内容通过@ResponseBody不能转为json时  请不要指定dataType为json, 即将// dataType: "json",注释掉
ajax只返回String "success"     使用@ResponseBody不能少      mapping方法上也是String 
ajax只返回ArrayList<String> list   使用@ResponseBody不能少  mapping方法上也是 ArrayList<String>
 
$.ajax({
        type: "GET",
        contentType: 'application/json; charset=UTF-8',
        // dataType: "json",   //将此行注释,说明返回的不是json, 而是普通的string或list

猜你喜欢

转载自blog.csdn.net/qq_29883183/article/details/80258624