为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我直接就跳进了error:function里面,没有进行success:function

$.ajax({
    url:"/ErrorController/ajaxError",
    type:"POST",
    async:false,
    success:function (data) {
        if (data.status ==200 && data.msg == "OK"){
            alert("succcess");
        } else{
            alert("error:" +data.msg);
        }
    },
    error: function (response,ajaxOptions,thrownError) {
        alert("error");
    }
});


handler.java

@RestController
public class AjaxExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public JSONResult defaultExceptionHandler(HttpServletRequest request,Exception e) throws Exception{
        e.printStackTrace();
        return JSONResult.errorException(e.getMessage());
    }
}

ajaxError.html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>异常捕获</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>

</head>
<body>
    <h1>测试ajax错误异常</h1>

    <script th:src="@{/js/ajaxerror.js}"></script>
</body>
</html>

controller里面的代码:

@RequestMapping("/testAjaxError")
public String testAjaxError(){
    return "/thymeleaf/ajaxError";
}


@RequestMapping("/ajaxError")
@ResponseBody
public JSONResult ajaxError(){

    int a=1/0;

    return JSONResult.ok();
}


正在回答

2 回答

将类注解

@ControllerAdvice

改成

@RestControllerAdvice

就好了


0 回复 有任何疑惑可以回复我~
AjaxExceptionHandler类上没有加@controlleradvice注解,可能异常统一处理并未生效,导致进入了error function


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我直接就跳进了error:function里面,没有进行success:function

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信