Ajax获取接口抛出的异常信息

一、接口抛出的异常,如 throw new MyException(“我的自定义异常!”);

二、ajax请求
$.ajax({
type: “post”,
url: url,
data: {
‘param1’: param1,
‘param2’: param2
},
dataType: “json”,
async: true,
success: function (result) {
alert(result.msg);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(“错误信息:” + XMLHttpRequest.responseText); //获取的信息即是异常中的Message
}
});

三、 GET 请求功能以取代复杂 .ajax使 .ajax。(查手册)

四、如果由 jQuery.post() 发起的请求返回错误代码,那么不会有任何提示,除非脚本已调用了全局的 .ajaxError() 方法。或者对于 jQuery 1.5,jQuery.post() 返回的 jqXHR 对象的 .error() 方法也可以用于错误处理。

五、zTree中的zTreeOnAsyncError方法
function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest);
};
var setting = {
callback: {
onAsyncError: zTreeOnAsyncError
}
};

六、jqXHR 对象
var jqxhr = $.post(“example.php”, function() {
alert(“success”);
})
.success(function() { alert(“second success”); })
.error(function() { alert(“error”); })
.complete(function() { alert(“complete”); });
// 在这里执行其他任务

// 为上面的请求设置另一个完成函数
jqxhr.complete(function(){ alert(“second complete”); });

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: `window.location.href` 是用来获取当前页面的URL地址的,与控制器抛出异常没有关系。 如果想要捕获控制器抛出异常,可以使用try-catch语句来处理。在调用控制器方法的地方,将其放在try块中,并在catch块中处理异常。例如: ``` try { // 调用控制器方法 $.ajax({ url: 'Controller/Action', type: 'POST', data: { /* 数据 */ }, success: function (data) { // 处理成功返回的数据 } }); } catch (ex) { // 处理异常 console.error(ex); } ``` 在控制器方法抛出异常时,就会被catch块捕获到并进行处理。你可以根据需要,在catch块中将异常信息输出到控制台、显示错误提示等。 ### 回答2: 在使用winlow.location.href获取服务器Controller抛出异常时,我们需要了解一些相关的背景知识。 winlow.location.href属于JavaScript的window对象的一个属性,用于获取当前窗口的URL地址。而服务器Controller是指在Web应用程序中负责处理请求和返回响应的组件。当Controller在处理请求过程中发生异常时,服务器通常会返回一个异常页面或者是一个包含错误信息的响应。 然而,由于winlow.location.href是在客户端运行的JavaScript代码,它是无法直接获取服务器Controller抛出异常的。因为异常信息通常是在服务器端处理完之后,通过HTTP响应的形式返回给客户端的。 如果我们想要获取异常信息,有几种常用的方法可以尝试: 1. 使用Ajax请求:通过使用XMLHttpRequest对象(或者更为方便的jQuery AJAX方法),我们可以以异步的方式向服务器发送请求,并捕获服务器返回的异常信息。 2. 服务器端记录日志:在服务器端的代码中,可以将Controller抛出异常信息记录到日志文件中。然后再通过其他方式,如定期检查或提供一个接口来让客户端获取日志文件中的异常信息。 3. 定制异常处理机制:在服务器端的代码中,可以针对Controller抛出异常进行定制化处理。将异常信息存储在数据库中或者使用其他方式记录下来,然后再通过特定的请求或接口异常信息返回给客户端。 需要根据具体的场景和要求,选择合适的方法来获取服务器Controller抛出异常信息。无论哪种方式,我们必须保证服务器端能够正确地处理异常并将其返回给客户端。在客户端使用JavaScript代码时,要注意其在获取异常信息方面的局限性,以及如何与服务器端进行协作来获得更准确的异常信息。 ### 回答3: 在JavaScript中,可以使用winlow.location.href获取当前窗口的URL。然而,这个方法无法直接获取到服务器端Controller抛出异常。因为当Controller抛出异常时,服务器会返回一个错误页面或者错误信息,而不是将异常信息直接传递给前端。 要获取Controller抛出异常信息,我们可以使用Ajax请求将异常信息通过接口返回给前端。具体的做法是,在前端代码中使用Ajax向后台发送请求,然后在后台控制器中捕获异常并返回异常信息。前端可以通过Ajax的回调方法来获取异常信息,并进行相应的处理。 例如,前端代码可以是这样的: ```javascript $.ajax({ url: "/your_controller_url", type: "GET", success: function(data) { // 请求成功处理数据 }, error: function(xhr, textStatus, errorThrown) { // 获取异常信息 var error = xhr.responseText; // 处理异常信息 } }); ``` 在后台的控制器中,可以像平常一样处理业务逻辑,当捕获到异常时,将异常信息作为响应返回给前端。 ```java @RequestMapping("/your_controller_url") public String yourControllerMethod() { try { // 处理业务逻辑 } catch (Exception e) { // 捕获异常并返回异常信息给前端 return e.getMessage(); } } ``` 通过以上的方法,前端可以通过Ajax请求获取到Controller抛出异常信息,并进行相应的处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值