jQuery ajax erreur de rappel pas de tir
Je demande une URL avec l'ajax que les résultats dans un en-tête HTTP de code 500. Je m'attends à ce pour déclencher la fonction d'erreur:
$.ajax({
url: "http://xxx",
dataType: "jsonp",
crossDomain: true,
success: function( data ) {
alert('success');
},
error: function () {
alert('error');
}
});
Cela fonctionne dans safari, mais échoue dans chrome et firefox.
Ce que je fais mal?
C'est le dernier jquery 1.4.X, pour des raisons que je ne peut pas mettre à niveau vers les versions ultérieures..
La réponse envoie un code HTTP 500, type de contenu application/json et contenu:
jsonp1310063232212({"error":{"raison":"l'Utilisateur n'est pas trouvé"}})
- Je ne sais pas si cette version de jQuery peut détecter JSONP erreurs. Essayez de définir un délai d'expiration de votre demande. Le rappel peut être appelé si aucun résultat n'a été reçue après le délai d'attente a expiré.
- Merci, mais pas de changement. Pas d'erreur de rappel, pas de succès de rappel. Également ajouté ajaxError méthode, mais que trop n'est pas appelé.
Vous devez vous connecter pour publier un commentaire.
Il ressemble
crossDomain:
n'a pas été ajoutés jusqu'à ce que jQuery 1.5.http://api.jquery.com/jQuery.ajax/
Comme Martin Larente l'a indiqué dans son commentaire, il pourrait être un problème avec la façon dont les différents navigateurs ou jQuery détecte/rapports JSONP erreurs.
Comme indiqué sur la documentation de JQuery [1] le gestionnaire d'erreur n'est pas appelé pour la croix-domaine de script et JSONP demandes. Il a travaillé (pas toujours) sur les anciennes versions de JQuery.
- Je le résoudre à l'aide d'un compact et efficace plugin qui comprennent une belle gestionnaire d'erreur:
http://code.google.com/p/jquery-jsonp/
Le télécharger et l'ajouter à la tête:
Ensuite, vous pouvez utiliser la fonction $.jsonp() similaire à $.ajax():
[1] http://api.jquery.com/jQuery.ajax/
Il semble que les questions en suspens avec ce voir. Abandonner JSONP requête ajax avec jQuery