你能告诉我下面的ajax调用控制器出了什么问题吗? 通过ajax调用的控制器:
flexbox
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调用时,它总是继续执行错误功能,并且 jqxhr.responseText 始终是控制器返回的值(在这种情况下&#39;成功&#39;或者&#39;失效&#39 ;.
我的问题是为什么会发生这种情况?
如果我将控制器返回值更改为&#34; true&#34;或&#34;假&#34; 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);
}
});
}
并获得了相同的结果。
答案 0 :(得分:0)
将datatype
更改为:
dataType: 'text',
因为这样你会得到一个字符串:
@RequestMapping(value = "/userManagement/loadData.html", ....... produces="text/plain")
//--------because of this-----------------------------------^^^^^^^^^^^^^^^^^^^^^^