182 votes

jQuery: Exécution de requêtes AJAX synchrones

J'ai déjà fait jQuery par le passé, mais je suis complètement bloqué sur ce point. Je connais les avantages et les inconvénients de l'utilisation d'appels ajax synchrones, mais ici, ce sera nécessaire.

La page distante est chargée (contrôlée avec Firebug), mais aucun retour n'est affiché.

Que dois-je faire différemment pour que ma fonction revienne correctement?

 function getRemote() {

    var remote;

    $.ajax({
        type: "GET",
        url: remote_url,
        async: false,
        success : function(data) {
            remote = data;
        }
    });

    return remote;

}
 

293voto

Dogbert Points 44003

Comme vous faites une demande synchrone, cela devrait être

 function getRemote() {
    return $.ajax({
        type: "GET",
        url: remote_url,
        async: false
    }).responseText;
}
 

Exemple - http://api.jquery.com/jQuery.ajax/#example-3

32voto

Jake Points 1824

Vous utilisez la fonction ajax de manière incorrecte. Comme il est synchrone, il renverra les données comme suit:

 var remote = $.ajax({
    type: "GET",
    url: remote_url,
    async: false
}).responseText;
 

17voto

TheBrain Points 2474

quelle distance est cette URL? est-ce du même domaine? le code a l'air correct

essaye ça

 $.ajaxSetup({async:false});
$.get(remote_url, function(data) { remote = data; });
// or
remote = $.get(remote_url).responseText;
 

-6voto

user3831628 Points 1
$("button").click(function(){ 
      $.ajax({url:"demo_test.txt",
              success:function(result){ $("#div1").html(result); }
             });
}); 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X