jquery - 如何显示从 jquery ajax 调用引发的 .net 异常?
问题描述
我绝对确定这一定是重复的,但我找不到我正在寻找的答案,所以理想情况下,某种善良的灵魂将能够快速关闭它作为重复并指出我的答案寻找。
我对 .net MVC 操作进行 ajax 调用并引发异常。如何在ajax调用的错误函数中获取异常消息?
需要明确的是,我不想在 .net 中捕获异常,然后发送将在成功函数中接收的消息。在我的第一份开发工作中,这种类型的方法是在 api 中采用的,它实际上花费了杂货店很多钱,因为开发人员没有阅读文档并且错误地实现了集成。如果有一个实际的错误,这将永远不会发生。
同样,这是在处理付款,我不希望有人因为没有阅读文档而无意中批准了订单(首先没有文档,因为这是在内部用于小型企业)并认为因为没有引发错误,订单必须已成功处理。
话虽如此,我只是在寻找最简单的方法来获取异常的 Message 属性并显示它(异常本身不是自定义的,但它上面的消息会是;所以不用担心意外的异常会泄露系统细节通过)。
编辑:我现在意识到我被要求的东西是不可能的。我真正想要的东西是
a) 运行 ajax 方法的错误回调(当然也不运行成功回调)
b) 能够访问异常的消息
通常,异常会发回 500 响应。我是否可以修改响应以将消息放在可以从错误回调访问的某个位置?
解决方案
你可以试试这个:error:function() 将捕获异常
$.ajax({
url: '',
type: "",
data:'',
beforeSend:function(){
},
success: function (data) {
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
console.log(msg);
}
推荐阅读
- sql - 更新后插入存储过程
- android - 分页库过滤器/搜索页面列表
- c# - 如何以编程方式重新路由 visio 中的连接器?
- c# - Xamarin.Android 中的 Auth0 注销问题
- google-maps - Google Map UI Experience 在 api 中不可用(边框,样式)?
- ios - 从图像 url 下载图像方面,URLSession 与 GCD 有什么区别?
- xslt-2.0 - 如何控制表中多行中的字符串值流。值用逗号分隔,并带有点
- html - 如何根据用户偏好在 webview 上实现 html 的动态样式
- hyperledger-fabric - 如何将用户证书共享给客户端
- php - 在 laravel 和 vuejs 插入数据库 + 日志文件时出现 500 错误