无法从responseText获取消息

时间:2013-03-21 14:20:35

标签: ajax spring-mvc

Spring控制器:

response.sendError(500, ErrorMessage.DataBaseInsertFailed);

我的.jsp页面

    complete: function(e, xhr, settings){
    var errorMessage = $.parseJSON(e.responseText);
        alert(errorMessage);

    }

如果我做e.status,我得到500

如果我执行e.resonseText我会得到整个文本,但是我希望显示我的自定义消息'数据库失败,因为...'我的警报语句甚至没有触发。如果我做alert(xhr)也不会开火。

以上内容来自SO

中的这一个

查看此documentation并更改了我的签名以匹配文档

complete
Type: Function( jqXHR jqXHR, String textStatus )
A function to be called when the request finishes (after success and error callbacks are executed). The function gets passed two arguments: The jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object and a string categorizing the status of the request ("success", "notmodified", "error", "timeout", "abort", or "parsererror"). As of jQuery 1.5, the complete setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.

1 个答案:

答案 0 :(得分:0)

您看到的HTML是服务器的错误页面,因为您发送的是500错误响应。设置响应状态并将JSON写入响应,如下所示:

((HttpServletResponse)response).setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.getWriter().write(ErrorMessage.DataBaseInsertFailed));

然后在你的ajax调用中使用错误回调显示错误:

error: function(xmlHttpRequest, textStatus, errorThrown) {
    alert(xmlHttpRequest.responseText);
}