Ma demande ajax atteint une api avec des limites de taux.

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "jsonp",
    dataObj : index,
    success: function (response, textStatus, xhr) {
        console.log('success');
    }
    ,error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    }
});

J'aimerais savoir quand j'atteins la limite de taux.

Mais pour les demandes montrant cela dans la console:

Échec du chargement de la ressource: le serveur a répondu avec un état de 429 (OK)

Je ne vois ni «succès» ni «erreur». C'est comme si le succès et l'erreur ne sont pas exécutés.

Existe-t-il un moyen de pop-up et d'alerter, par exemple ?

J'ai essayé complete mais cela ne fonctionne pas non plus.

Je vous remercie

-1
stallingOne 21 juil. 2015 à 13:55

2 réponses

Meilleure réponse

Je n'ai pas trouvé de documentation pour dataObj, mais sa suppression a semblé permettre à la requête de s'exécuter correctement.

Si vous vous en débarrassez, le rappel error est exécuté et vous pourrez voir error dans la console.

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "jsonp",
    success: function (response, textStatus, xhr) {
        console.log('success');
    }
    ,error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    }
});

Éditer: il s'avère que ce que vous voulez réellement changer est le type de données. À moins que vous ne transmettiez explicitement un rappel, vous devez dire à jQuery que vous récupérez json et non jsonp.

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "json",
    dataObj: index,
    success: function (response, textStatus, xhr) {
        console.log('success');
    }
    ,error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    }
});
2
k-nut 21 juil. 2015 à 19:39

Essayez d'utiliser l'objet jQuery statusCode dans les paramètres, comme ceci:

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "jsonp",
    dataObj : index,
    success: function (response, textStatus, xhr) {
        console.log('success');
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    },
    statusCode: {
      429: function() {
        alert( "Exceeded request limit." );
      }
    }
});
0
Phillip Chambers 21 juil. 2015 à 11:14