Vraag Hoe een fout weer te geven die wordt geretourneerd door $ .ajax-aanroep?


Ik heb een code die voor altijd duurt om te laden en ten slotte, wanneer ik de foutbehandelaar zet, wordt er een waarschuwing weergegeven, maar ik moet weten welke fout er is geretourneerd? Hoe kan ik dat weten?

EDIT: ik krijg de gevraagde URL niet gevonden, maar ik ben er zeker van dat de URL: is een geldige URL op mijn host, wat kan er mis zijn? Ik kan er zelfs rechtstreeks in de browser toegang toe krijgen.

// process logging in a user from sidebar
$("#login-form").submit(function(event) {
    $('input:submit').attr("disabled", true);
    $("p.form-result").empty();
    $('p.form-submit').after('<p class="loading"><img src="<?php bloginfo('template_directory'); ?>/img/loading.gif" alt="" /></p>');
    $.ajax({
        url: '<?php bloginfo('template_directory'); ?>/ajax/login.php',
        type: 'POST',
        data: $(this).serialize(),
        dataType: 'json',
        success: function(data){
            $('.loading').remove();
            $('input:submit').attr("disabled", false);
            if (data.status) {
                // success
                $("p.form-result").html('<span class="success">' + data.message + '</span>');
                window.setTimeout(function(){location.reload()},3000);
            } else {
                // error
                $("p.form-result").html('<span class="error">' + data.message + '</span>');
            }
        },
        error: function(data){
            alert('error');
        }
    });
    return false;
});

11
2017-07-11 12:37


oorsprong


antwoorden:


De error gebeurtenis van de functie jQuery $.ajax ontvangt 3 argumenten

error : function(jqXHR, textStatus, errorThrown){

}

Dit is de jQuery-documentatie voor dit evenement:

Een functie die moet worden aangeroepen als het verzoek mislukt. De functie ontvangt   drie argumenten: het object jqXHR (in jQuery 1.4.x, XMLHttpRequest), a   string die het type fout beschrijft dat zich heeft voorgedaan en een optioneel   uitzonderingsobject, als er een is opgetreden. Mogelijke waarden voor de tweede   argument (naast nul) zijn "time-out", "fout", "afbreken" en   "Parsererror". Wanneer een HTTP-fout optreedt, ontvangt errorThrown de   tekstgedeelte van de HTTP-status, zoals "Niet gevonden" of "Intern   Serverfout. "Vanaf jQuery 1.5 kan de foutinstelling een array accepteren   van functies. Elke functie wordt om de beurt gebeld. Opmerking: deze handler   is niet vereist voor cross-domein script en JSONP-verzoeken. Dit is een   Ajax-evenement.

U zult weten wat de fout is met de parameter textStatus


14
2017-07-11 12:46



Foutgebeurtenis in ajax-aanroep wordt uitgevoerd wanneer ajax-aanroep ongeldige argumenten bevat. De volgende functie helpt u de foutcode te begrijpen door een foutmelding te geven en de foutdefinitie in waarschuwing weer te geven.

error: function(xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                },

7
2018-05-14 12:11



Gebruik de gegevensparameter van uw foutfunctie om de fout en de bijbehorende eigenschappen te melden. Het bootst je werkelijke fout na.

error: function(data){
     alert(data);
}

Mogelijke waarden voor het data (error) object volgens het antwoord van deze vraag (http://stackoverflow.com/questions/95600/jquery-error-option-in-ajax-utility)

timeout - when your specified timeout is exceeded
error - http error, like 404
notmodified - when requested resource was not modified since last request
parsererror - when an xml/json response is bad

2
2017-07-11 12:42



Probeer '+' tussen string en variabele toe te voegen als u concatanate. Soortgelijk:

url: '<?php bloginfo('+template_directory+'); ?>/ajax/login.php'

0
2017-08-10 04:14



Verander dit

url: '<?php bloginfo('template_directory'); ?>/ajax/login.php',

Door deze

url: '<?php bloginfo("template_directory"); ?>/ajax/login.php',

:)


0
2017-10-13 21:14