當前,如果我在提交表單(如我使用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