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
-
}
後臺傳來的資料格式如下