Ajax调用spring控制器回调错误函数

时间:2016-02-28 16:21:26

标签: javascript jquery ajax spring

你能告诉我下面的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); } }); } 并获得了相同的结果。

1 个答案:

答案 0 :(得分:0)

datatype更改为:

 dataType: 'text', 

因为这样你会得到一个字符串:

@RequestMapping(value = "/userManagement/loadData.html", ....... produces="text/plain")
                                            //--------because of this-----------------------------------^^^^^^^^^^^^^^^^^^^^^^