服务器端:Spring框架
我有一个 Spring Controller ,它有一个返回类型ResponseEntity<String>
的方法。
对于完全好的请求,我返回以下内容:
return new ResponseEntity<>(OK_MESSAGE, new HttpHeaders(), HttpStatus.OK);
但是如果在执行或异常捕获期间出现任何问题,我会返回:
return new ResponseEntity<>(ERROR_MESSAGE, new HttpHeaders(), HttpStatus.BAD_REQUEST);
其中ERROR_MESSAGE
包含每种类型的Exception catched的自定义字符串。
客户端:AJAX调用
当调用该POST方法并返回 HttpStatus.OK 时,AJAX
success: function (data, message, xhr)
被调用,我可以通过访问OK_MESSAGE
轻松访问字符串data
。
问题来自POST方法返回 HttpStatus.BAD_REQUEST ,AJAX
error: function (xhr, status, errMsg)
被调用但我无法访问服务器发送的字符串ERROR_MESSAGE
,我需要向用户显示该字符串。{/ p>
有什么建议吗?
答案 0 :(得分:5)
在控制器上,我按以下方式返回ResponseEntity:
return new ResponseEntity<>("Enter the full url", new HttpHeaders(), HttpStatus.BAD_REQUEST);
在JS中,我会以下列方式检查响应错误字符串:
$.ajax({
url: 'http://localhost:8080/link',
data: 'url=/www.stackoverflow.om',
type: 'GET',
contentType: 'application/json; charset=utf-8',
success: function (data, textStatus, xhr) {
alert(xhr.status);
},
error: function (data, textStatus, xhr) {
alert(data.responseText);
}
})