1. 程式人生 > >jQuery AJAX 方法 success()後臺傳來的4種資料

jQuery AJAX 方法 success()後臺傳來的4種資料

1.後臺返回一個頁面

js程式碼

/**(1)用$("#content-wrapper").html(data);顯示頁面*/
$.ajax({
    async : false,
    cache : false,
    type : 'POST',
    url : 'area/prepareCreate',
    error : function() {
        alert('smx失敗 ');
    },
    success : function(data) {
        $("#content-wrapper").html(data);
    }
});

java程式碼

/*
 * (1)不能有註解@RespoonseBody 
 * (2)返回值型別是String,代表頁面所在的資料夾
 * (3)如果返回"error",執行ajax的error方法
 */
@RequestMapping(value = "area/prepareCreate", method = RequestMethod.POST)
public String editAreaWithFile() {
    return "area/create;
    // return "error";
}

2. 後臺返回一個基本型別String,Long等

js程式碼

$.ajax({
    async : false
, cache : false, type : 'POST', url : 'app/area/delete', dataType : "json", error : function() { alert('smx失敗 '); }, success : function(data) { /**重點:前臺接收到返回值,直接處理就行*/ alert(data); } });

java程式碼

/**(1)用@ResponseBody註解
(2)可以接收各種引數,url,data(名稱匹配或@RequestBody)
(3)返回值型別就是基本型別*/
@ResponseBody @RequestMapping(value = "area/delete", method = RequestMethod.POST) public long editArea() { //處理引數 return 3; }

3. 後臺返回一個實體類

第一步:定義一個實體類

/**
 * flag為1 :操作失敗
 * msg:失敗原因;
 * flag為0: 操作成功*/
public class AjaxResponseMsg {
    private int flag;
    private String msg; 
}

第二步:js程式碼

$.ajax({
    async : false,
    cache : false,
    type : 'POST',
    url : 'app/area/delete',
    error : function() {
        alert('smx失敗 ');
    },
    success : function(data) {  
        var jsonData = JSON.parse(data);            
        if (jsonData .flag == 0) {//請求成功
            alert("後臺操作成果");  
        } else {
            alert(jsonData .msg);  
        }
    }
});

第三步:java程式碼

    /**(1)添加註解@ResponseBody
    (2)可以接收引數
    (3)返回型別就是實體類*/
    @ResponseBody
    @RequestMapping(value = "area/delete", method = RequestMethod.POST)
    public AjaxResponseMsg editAreaWithFile() {

        // 做操作
        boolean result = true
        AjaxResponseMsg ajaxMsg = new AjaxResponseMsg();
        if (result == true)
            ajaxMsg.setFlag(0);
        else {
            ajaxMsg.setFlag(1);
            ajaxMsg.setMsg("不能給一個感測器新增重複裝置");
        }
        return ajaxMsg; // 返回給前臺一個實體類,包括是否操作成功,及失敗原因
    }

4.後臺返回一個實體類list(實體類的欄位都是基本型別)

實體類

public class Section{
    private Long id; //id
    private String name; //名稱          
}

前臺

$.ajax({
    async : false,
    cache : false,
    type : 'POST',

    url : "section/getSections",
    error : function() {
        alert("失敗");
    },
    success : function(data) {
        var jsonData = JSON.parse(data); //jsonData是該下路下的所有區間(json格式) 

        for (var i = 0; i < jsonData.length; i++) {
            alert(jsonData[i].id);
            alert(jsonData[i].name);                    
        }

    }
})

後臺

@ResponseBody
@RequestMapping("/section/getSections")
@RequiresPermissions("section:view")
public List<Section> getSections() {
    List<Section> sections = new List<Section>();
    return sections;
}

5.後臺返回一個實體類list(實體類的欄位包括List型別)

第一步:定義實體類ChartSeries

public class ChartSeries {
    private String name; //曲線名稱     
    private List<Float> data; //曲線的縱座標 
    private List<Date> occurTime; //曲線的橫座標 
    //新增get set方法    
}

第二步:js程式碼

  $.ajax({
            url : "/dataRecord/chart" , //獲取資料列 
            type : 'GET',
            data : {
            },
            success : function(data) { 
                formatStringToJson(data);//對資料進行處理
            }
        });

    function formatStringToJson(data) {

        jsonData = JSON.parse(data);  //把後臺傳來的資料轉來JSON格式
        //jsonData是二維陣列,因為實體類ChartSeries的欄位data也是個list
        for (x in jsonData) {  //遍歷JSON格式的陣列取元素, x代表下標

            for (y in jsonData[x].data) {                
                 alert(jsonData[x].occurTime[y]) ;//依次獲取 
                 alert(jsonData[x].data[y]);
            }

        }


    }

第三步:java程式碼

@ResponseBody
@RequiresPermissions("dataRecord:view")
@RequestMapping(value = "/dataRecord/chart}", method = RequestMethod.GET)
public List<ChartSeries> getChart(){         
    List<ChartSeries> list =  new List<ChartSeries>();
    //給list賦值
    return list; // list
}

後臺傳來的資料格式如下
這裡寫圖片描述