当前,如果我在提交表单(如我使用ASP.NET MVC 3)时发生ajax请求错误,它将显示类似'内部服务器错误'的内容。用jQuery显示正确的错误信息AJAX
但是,如果我不使用Ajax进行提交,那么.net将显示实际的服务器错误。
任何想法,我怎么可能会得到错误显示?所以,我的用户可以只能够说“内部服务器错误”
感谢
当前,如果我在提交表单(如我使用ASP.NET MVC 3)时发生ajax请求错误,它将显示类似'内部服务器错误'的内容。用jQuery显示正确的错误信息AJAX
但是,如果我不使用Ajax进行提交,那么.net将显示实际的服务器错误。
任何想法,我怎么可能会得到错误显示?所以,我的用户可以只能够说“内部服务器错误”
感谢
虽然我不会建议显示给用户的实际响应错误消息的错误号,这是你如何可以通过添加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。
此代码将与来自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";
}
});
向用户显示实际的错误消息可能引发安全问题。给他们一个与DB中记录的异常相对应的ID更好。 – SLaks