簡體   English   中英

Ajax調用spring控制器回調錯誤函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM