Comment faire un synchrones json appel ajax avec jquery
J'ai le texte suivant json appel ajax:
$.getJSON(server_data.secure_api+'/e/account/check/?callback=?', queryData,
function(data) {
has_error = (data.status == 'failure');
});
Qui fonctionne parfaitement, sauf qu'il est asynchrone. J'ai maintenant besoin de faire synchrone, parce que j'ai besoin pour mettre en pause la fonction d'appel jusqu'à ce que has_error est réglé. Comment puis-je faire cela?
J'ai déjà essayé d'utiliser un .appel ajax, comme ceci:
jQuery.ajax({
url: server_data.secure_api+'/e/account/check/?callback=?',
data: queryData,
DataType: 'jsonp',
success: function(result) {
has_error = (data.status == 'failure');
},
async: false
});
Mais il ne fonctionne pas! J'ai essayé le réglage du Type de données en json, jsonp, ou non; j'ai essayé, y compris la ?callback=?
et j'ai essayé de le laisser éteint; rien de tout cela a fonctionné. Ce que je fais mal?
- Que ne puis-je pas faire?
- Quelle est la version de jQuery que vous utilisez? "Après de 1,8 faux est obsolète; vous devez utiliser le succès/erreur/compléter les options de rappel de la place de la méthode"
- jquery-2.1.0
Vous devez vous connecter pour publier un commentaire.
De jQuery 1.8, l'utilisation de async: false avec jqXHR ($.Différés) est obsolète; vous devez utiliser le succès/erreur/complète des options de rappel au lieu de la méthode correspondante
http://api.jquery.com/jQuery.ajax/
Il n'y a aucune raison que votre cas d'utilisation devrait exiger du code synchrone. Si vous avez besoin d'un peu de code pour retarder l'exécution jusqu'à ce que l'appel asynchrone est terminée, placez ce code dans la fonction de callback.