Ben isteyerek ve AJAX yoluyla veri gönderme, bir web uygulaması var ve yanıt olarak, benim sunucu tarafı duruma göre, HTTP durum kodları gönderir. böylece örneğin bir kullanıcı o ben muhtemelen 400 HTTP status code
dönmek oturumunun kapalı iken giriş çalışırsa. Ve sonunda ben vbTüm AJAX çağrıları için belirli bir HTTP hatası nasıl ele alınır?
, bir uyarı ile idare Ama AJAX yoğun kullanımını yapıyorum çünkü bu HTTP Durum kodları taşınması, çok ağır olur. ben yinelenen kod neden olacaktır her AJAX isteği ile tekrar tekrar HTTP durum kodunu işleme olacağım anlamına gelir ve bu kötü bir uygulamadır.
Yani, ne arıyorum tek bir yerde bu hataları işlemek için bir yoldur, bu yüzden sadece aynı kodla tüm 400
, 401
, vb işlemek.
her AJAX çağrısı için elle hatalarını işleme i anda ne yapıyorum
. $.ajax()
yılında statusCode
kullanarak. Daha ajax çağrıları oluştururken
statusCode: {
500: function(data) {
alert('Some friendly error message goes here.');
}
Benim web uygulaması geliştikçe, benim için bir overkill gibi görünüyor, ve. Bu kod parçasını tekrar tekrar tekrar çalacağım. Sen küresel hata durumu işleyicileri kayıt $.ajaxSetup()
kullanabilirsiniz
function doAjax(type,url, data, moreVars) {
//this function is just a SIMPLE example, could be more complex and flexible.
$.ajax({
type: type,
url: url,
data: data,
moreOptions:moreVars,
//now handling all status code.
statusCode: {
//handle all HTTP errors from one place.
}
});
}
doAjax("POST", 'mydomain.com/login.php', dataObj);
* "Not: Küresel geri arama işlevleri, kendi küresel Ajax olay işleyicisi yöntemlerine-'.ajaxStart ile ayarlanmalıdır()' '.ajaxStop()' '. seçenekler dahilinde daha-ziyade ajaxComplete() '' .ajaxError() '' .ajaxSuccess() '' .ajaxSend() '' $ .ajaxSetup() 'için itiraz ediyoruz." * – josh3736