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

目前,如果我有一个ajax请求的错误,如提交表单(我使用的是ASP.NET MVC 3),它将显示类似“内部服务器错误”的内容。

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

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

谢谢

虽然我不建议向用户显示错误编号和实际响应错误消息,但这是通过添加error回调来实现此目的的方法

 error: function(xhr,err){ alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status); alert("responseText: "+xhr.responseText); } 

xhr是XmlHttpRequest。

readyState值为1:loading,2:loaded,3:interactive,4:complete。

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

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

此代码将使用从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"; } });