gpt4 book ai didi

java - 如何将 Java 异常信息返回给 jQuery.ajax REST 调用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:45 24 4
gpt4 key购买 nike

我有一些 jQuery 代码可以对 Java 后端进行 REST 调用。后端函数的处理可能会遇到异常。将此信息备份到 Javascript 的最佳方法是什么?在一次测试中,我在 Java 中捕获了异常并将 HTTP 状态代码设置为 500。这导致 $.ajax 错误处理程序被调用,正如预期的那样。错误处理程序的参数实际上并不包含任何有用的信息。理想情况下,我想以某种方式将 Exception.getMessage() 字符串传播回错误处理程序,但不知道如何。


function handleClick() {
var url = '/backend/test.json';
$.ajax({
type: "POST",
url: url,
cache: false,
dataType: "json",
success: function(data){
alert("it worked");
},
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR);
alert(textStatus); // this comes back as "error"
alert(errorThrown); // this comes back as "undefined"
}
});
}

最佳答案

我能够通过这种方式将自定义错误消息(java 字符串)发送回基于 jQuery 的客户端。我认为我的自定义消息可以替换为您想要/需要的异常信息

在 Controller 中:

public static void handleRuntimeException(Exception ex, HttpServletResponse 
response,String message) {
logger.error(ex);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.getWriter().write(message);
response.flushBuffer();
}

在 client/javascript 中(在错误事件中从 ajax 调用)

displayError:function(jqXHR, textStatus, errorThrown){
if(jqXHR.responseText !== ''){
alert(textStatus+": "+jqXHR.responseText);
}else{
alert(textStatus+": "+errorThrown);
}
}

希望这有帮助/

关于java - 如何将 Java 异常信息返回给 jQuery.ajax REST 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com