鍍金池/ 問答/Java  HTML/ 數(shù)據(jù)插入成功,為什么ajax返回的是error函數(shù)

數(shù)據(jù)插入成功,為什么ajax返回的是error函數(shù)

代碼:
//發(fā)送注冊異步請(qǐng)求

    $.ajax({
        type:"post",
        url :"/user/register",
        data:$("form").serialize(),
        dataType:"json",
        success:function(data){
            alert(data);
            if(data == "success"){
                alert("注冊成功");
                window.location.href="/";//你跳轉(zhuǎn)的頁面
            }else if(data == "fail"){
                alert("注冊失敗:"+data);
            }

        },
        error:function(data){
            alert("error:"+data);
            if(data == "error")
            alert("注冊異常"+data);
            window.location.href="/";
        }
    });

@RequestMapping(value = "/user/register",method = RequestMethod.POST)

public ModelMap register(User user){
    ModelMap map = new ModelMap();
    try {
        System.err.print(user.toString());
        int result = userService.register(user);
        if (result > 0) {
            //注冊成功
            map.put("res","success");
        }else {
            map.put("res","fail");
        }
        return map;
    }catch (Exception e){
        e.printStackTrace();
        map.put("data","error");
        return map;
    }
}

而且window.location.href="/";這行代碼也沒執(zhí)行,因?yàn)闆]有跳轉(zhuǎn)

clipboard.png
數(shù)據(jù)庫是插入了數(shù)據(jù)的,也沒有拋出異常,為什么會(huì)是error呢?

回答
編輯回答
編輯回答
解夏

ajax設(shè)置了dataType:"json"
返回格式不是json 就會(huì)進(jìn)error

2017年3月13日 13:07
編輯回答
你好胸

控制層返回的不是json格式,你少了@ResponseBody吧

2018年3月15日 11:41
編輯回答
嘟尛嘴

瀏覽器F12,查看NetWork中的請(qǐng)求,你會(huì)發(fā)現(xiàn)Status Code: 404 Not Found。

為什么是404?因?yàn)槟惴椒ㄉ蠜]加@ResponseBody注解,方法把返回結(jié)果當(dāng)成了一個(gè)路徑,它找不到頁面就報(bào)404.

然后你方法加上@ResponseBody注解,成功運(yùn)行項(xiàng)目后,發(fā)現(xiàn)又會(huì)報(bào)HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class org.springframework.ui.ModelMap。
為什么?json類型轉(zhuǎn)換失敗。

應(yīng)該怎么做?fastjson或jackson可以了解一下。
2017年9月7日 20:49
編輯回答
陌璃

看一下response,http code是否為200,不是的話就會(huì)進(jìn)入error邏輯

2018年6月5日 03:44