Istemci sonunda Ajax sorgu ile sunucu taraflı istisnalar işlemek nasıl?

3 Cevap php

Merhaba Ben zaman zaman istisnalar sunucu taraflı kod attırmayı olmadığını fark ettik beyler - bu ajax istekleri söz konusu olduğunda ancak nasıl böyle ben bir istisna atılmış ve bir şey gitti kullanıcıyı bilgilendirmek mümkün olduğumu uygularım Yanlış? Ben burada arka uç Php kullanıyorum.

3 Cevap

Ajax isteği şey korkunç yanlış gitti ki 500 AJAX arayan uyaran bir sunucu kodu ile yanıt verebilir. Çoğu kütüphaneleri bu olay tetiklenir bir onFailure geri arama uygulamak.

JQuery ya da kullanmıyorsanız eğer ben bilmiyorum. Benim cevabım jQuery kullanmak varsayarak verilir, ancak başka bir JavaScript framework (veya hiçbiri) aynı kavram uygulayabilirsiniz. Bu sayede, kullanıcılar, aslında yerine (zaten uselss olan) genel bir hata mesajı yığın izleme bakıyor olurdu:

$.ajax({
            url: '/some_url', 
            type: 'post',  //or get 
            data: ..., 
            success: function() { /* handle success */ },
            error: function(XMLHttpRequest, textStatus, errorThrown) {                    
                $('#error_dlg').dialog('open').trigger('initDlg', [XMLHttpRequest]);                    
            }
        });


$('#error_dlg').dialog({
    autoOpen: false,
    width: 550,
    height: 400,
    modal: true,
    buttons: {
        'Close': function() { 
            $(this).dialog('close'); 
        }
    },
    open: function(event, ui) {            
    }           
}).bind('initDlg', function(e, XMLHttpRequest) {    
    $('#error_stack_trace').append($('<div>').html(XMLHttpRequest.responseText));
});

Yararlı olabilir Geçenlerde rastladım şey şudur:

http://php.net/manual/en/function.set-error-handler.php

PHP bir hata içine çalışıyorsa temelde, bu zaman uyumsuz bir istek veya bir senkron isteği ile çalışmak için tasarlayabilirsiniz, hangi sizin işleyici kullanır.

Ancak, sizin de içinde kod durumlar atma gibi görünüyor. Üstünkörü bakışta, siz de özel bir durum işleme sınıf oluşturabilirsiniz.

http://www.w3schools.com/php/php_exception.asp

Bir kez daha, asenkron veya senkron istekleri ile çalışmak için tasarlayabilirsiniz. Eğer bir tepki olarak JSON kullanıyorsanız, Javascript, sadece bir istisna / hata kodunuzu uyaracaktır bir hata bayrağı ayarlayabilirsiniz ve uygun şekilde yanıt verecektir. Eğer bir tepki olarak düz HTML kullanarak ediyorsanız kullanabilirsiniz, böylece bir 500 hata (veya diğer çeşitlerinden biridir, ben de 500 kodları tecrübeli değilim) göndermek zorunda kalabilirsiniz {[(0)] } ya da diğerleri gibi failure function işlemcileri belirtmiştik.