Ajax請求成功, 但進不去success方法


一. 問題描述

前端發送ajax請求給后端, 后端收到, 正常返回String, 但前端ajax的回調方法success沒有響應
前端代碼

function sendMsg(msg, uname) {
    $.ajax({
        url: "/chat",
        type: "post",
        data:'message='+msg+'&username='+uname,
        dataType: "json",
        success: function (data) {
            console.log("receive data : " + data);
        }
    });
}

后端代碼

@RequestMapping("/chat")
@ResponseBody
public ServerResponse chat(String message, String username) {
    System.out.println("------------ chat message is : " + message + " chat user is : " + username + " ------------------");
    return "success";
}


二. 原因

后台返回的json數據是一個純String類型的對象時,前端dataType屬性設置為json后,會認為這個由String對象轉換的json數據格式不是標准的json格式, 固前端認為出錯了, 不進回調方法: success



三. 解決, 有兩種方法

1. 改前端代碼, 后端不變: 前端ajax請求中的dataType屬性設置為text即可

function sendMsg(msg, uname) {
    $.ajax({
        url: "/chat",
        type: "post",
        data:'message='+msg+'&username='+uname,
        dataType: "text",
        success: function (data) {
            console.log("receive data : " + data);
        }
    });
}

2. 改后端代碼, 前端不變: 后端封裝為一個json的字符串即可

@RequestMapping("/chat")
@ResponseBody
public ServerResponse chat(String message, String username) {
    System.out.println("------------ chat message is : " + message + " chat user is : " + username + " ------------------");
    return "{\"result\":\"success\"}";
}




參考來源

Ajax請求發送成功但不進success方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM