目前,如果我的ajax请求出错,例如提交表单(我使用的是ASP.NET MVC 3),则会显示“内部服务器错误”等内容。
但如果我在不使用Ajax的情况下进行提交,那么.net将显示实际的服务器错误。
关于如何让错误显示的任何想法?所以我的用户可以报告问题而不是只能说“内部服务器错误”
由于
答案 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";
}
});