[英]Ajax call to spring controller callback error function
您能告訴我以下對控制器的ajax調用出了什么問題嗎?
通過ajax調用的控制器:
@RequestMapping(value = "/userManagement/loadData.html", method = RequestMethod.POST,produces="text/plain")
public @ResponseBody String loadData(@RequestBody String jsonData) {
try {
Map<String, Object> data = JsonUtils.jsonAsMap(jsonData);
pageSize = Integer.valueOf(data.get("pageSize").toString());
pageNumber = Integer.valueOf(data.get("pageNumber").toString());
} catch (Exception e) {
return "failure";
}
return "success";
}
ajax函數:
function reloadUsers(){
$.ajax({
type : "POST",
cache : false,
dataType: 'json',
contentType: 'application/json',
mimeType: 'application/json',
url : "userManagement/loadData.html",
data : JSON.stringify({
pageSize : 10,
pageNumber : 0
}),
success : function(response) {
if(response.responseText=='true'){
console.log('success');
}else{
console.log('server error');
}
},
error : function(jqxhr){
console.log('error');
console.log(jqxhr.responseText);
}
});
}
現在,當我執行對控制器的ajax調用時,它將始終執行錯誤功能,並且jqxhr.responseText始終是控制器返回的值(在這種情況下為“成功”或“失敗”。
我的問題是為什么會這樣?
如果我將控制器返回的值更改為“ true”或“ false”,則ajax將成功回調“成功”功能。
我還嘗試了produces="application/json"
並得到了相同的結果。
將datatype
更改為:
dataType: 'text',
正因為如此,您將獲得一個字符串作為響應:
@RequestMapping(value = "/userManagement/loadData.html", ....... produces="text/plain")
//--------because of this-----------------------------------^^^^^^^^^^^^^^^^^^^^^^
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.