在Java中,将异常信息返回给jQuery.ajax REST调用可以通过以下步骤实现:
以下是一个示例代码:
Java后端代码:
import com.fasterxml.jackson.databind.ObjectMapper;
// 定义错误响应对象
class ErrorResponse {
private int errorCode;
private String errorMessage;
public ErrorResponse(int errorCode, String errorMessage) {
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
// 省略getter和setter方法
}
// REST接口
@RestController
public class MyController {
@GetMapping("/api/data")
public ResponseEntity<String> getData() {
try {
// 业务逻辑代码
// 如果发生异常,捕获并封装到ErrorResponse对象中
throw new Exception("Something went wrong");
} catch (Exception e) {
// 创建ErrorResponse对象
ErrorResponse errorResponse = new ErrorResponse(500, e.getMessage());
// 将ErrorResponse对象转换为JSON字符串
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(errorResponse);
// 返回JSON字符串作为响应体
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(json);
}
}
}
前端代码:
$.ajax({
url: "/api/data",
type: "GET",
success: function(response) {
// 解析JSON字符串
var errorResponse = JSON.parse(response);
// 提取错误信息字段
var errorCode = errorResponse.errorCode;
var errorMessage = errorResponse.errorMessage;
// 处理错误信息
console.log("Error code: " + errorCode);
console.log("Error message: " + errorMessage);
},
error: function(xhr, status, error) {
// 处理请求错误
console.log("Request error: " + error);
}
});
这样,当Java后端代码中发生异常时,会将异常信息封装到ErrorResponse对象中,并以JSON格式返回给前端。前端通过解析JSON字符串获取到错误信息,并进行相应的处理。
领取专属 10元无门槛券
手把手带您无忧上云