使用jQuery AJAX显示正确的错误消息

时间:2011-11-07 18:54:27

标签: jquery

目前,如果我的ajax请求出错,例如提交表单(我使用的是ASP.NET MVC 3),则会显示“内部服务器错误”等内容。

但如果我在不使用Ajax的情况下进行提交,那么.net将显示实际的服务器错误。

关于如何让错误显示的任何想法?所以我的用户可以报告问题而不是只能说“内部服务器错误”

由于

2 个答案:

答案 0 :(得分:23)

虽然我不建议向用户显示错误编号以及实际响应错误消息,但这是通过添加error回调

来实现此目的的方法
error: function(xhr,err){
    alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
    alert("responseText: "+xhr.responseText);
}

xhr 是XmlHttpRequest。

readyState 值为1:加载,2:加载,3:交互式,4:完成。

状态是HTTP状态编号,即404:未找到,500:服务器错误,200:确定。

responseText 是来自服务器的响应 - 可以是来自Web服务的文本或JSON,也可以是来自Web服务器的HTML。

答案 1 :(得分:6)

此代码将使用从ajax请求返回的错误替换当前页面的内容。

jQuery(document).ajaxError(function (event, request, settings) {
    if (request.status === 500) {
        $(document.body).html(request.responseText);
    } else if (request.status === 401) {
        // redirect to login, 401 means session is expired.
        window.location.href = "login page url";
    }
});