Comment gérer le code de réponse HTTP AJAX

Comment gérer le code de réponse HTTP AJAX
Catégories : AJAX

En plus des rappels de promesse .done .fail et .always, qui sont déclenchés selon que la requête a réussi ou non, il y a le option pour déclencher une fonction lorsqu’un code d’état HTTP spécifique est renvoyé par le serveur. Cela peut être fait en utilisant le paramètre statusCode.

$.ajax({
    type: {POST or GET or PUT etc.},
    url:  {server.url},
    data: {someData: true},
    statusCode: {
        404: function(responseObject, textStatus, jqXHR) {
            // No content found (404)
            // This code will be executed if the server returns a 404 response
        },
        503: function(responseObject, textStatus, errorThrown) {
            // Service Unavailable (503)
            // This code will be executed if the server returns a 503 response
        }           
    }
})
.done(function(data){
    alert(data);
})
.fail(function(jqXHR, textStatus){
    alert('Something went wrong: ' + textStatus);
})
.always(function(jqXHR, textStatus) {
    alert('Ajax request was finished')
});

Comme l’indique la documentation officielle de jQuery :

Si la demande aboutit, les fonctions de code d’état prennent les mêmes paramètres que le rappel de succès ; si cela se traduit par une erreur (y compris la redirection 3xx), ils prennent les mêmes paramètres que le callback error.

Mots clés : AJAX HTTP