Spring ResponseEntity& AJAX错误功能:无法访问响应正文内容

时间:2015-01-05 17:01:45

标签: javascript jquery ajax spring

服务器端: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>

有什么建议吗?

1 个答案:

答案 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);
            }
        })