基于ajax请求异常捕获

Posted hlhlz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于ajax请求异常捕获相关的知识,希望对你有一定的参考价值。

第一步:controller中

@RequestMapping("/ajaxerror")
public String ajaxerror() {

return "thymeleaf/ajaxerror";
}

//一个异常包下的类,一个html,一个js
@RequestMapping("/getAjaxerror")
@ResponseBody
public IMoocJSONResult getAjaxerror() {

int a = 1 / 0;

return IMoocJSONResult.ok();
}

 

第二步:html中

<!DOCTYPE html >
<html>
<head lang="en">
<meta charset="UTF-8" />
<title></title>

<script th:src="@{/static/js/jquery.min.js}"></script>

</head>
<body>

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

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

标准ajax请求

$.ajax({
url: "/err/getAjaxerror",
type: "POST",
async: false,
success: function(data) {
debugger;
if(data.status == 200 && data.msg == "OK") {
alert("success");
} else {
alert("发生异常:" + data.msg);
}
},
error: function (response, ajaxOptions, thrownError) {
debugger;
alert("error");
}
});

 

 

第三步 异常类 在exception包中  IMoocExceptionHandler

详情参考代码

第四步 前端请求  http://localhost:8080/err/ajaxerror

结果报异常 alert一下

因js是先执行,所以执行完后就会显示前端文字信息

 










































以上是关于基于ajax请求异常捕获的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sencha Touch 2 的 Ajax 请求中捕获请求异常?

ajax请求后台代码,如何实现后台抛出异常在前台捕获异常:如后台抛出throw exception("该帖子已被删除")

AJAX POST 处理程序导致“未捕获的异常”

在 ajax 中捕获 laravel 验证异常

SpringBoot配置全局异常捕获

在 Chrome 中超时 Ext.Ajax.request 后未捕获的异常