2009-09-04 6 views
1

Y a-t-il un meilleur moyen d'écrire ce qui suit?jquery ajax avec deux appels de service

J'ai deux services que j'ai besoin d'appeler.

Les données renvoyées par le premier service sont nécessaires pour créer l'URL du second appel ajax.

$.ajax({ 
     url: 'http://service', 
     type: 'GET', 
     dataType: 'json', 
     timeout: 1000, 
     error: function(){ 
      alert('Error loading json document'); 
     }, 
     success: function(json){ 
      processJson(json.foo); 
     } 
    }); 


    function processJson(url) { 

    $.ajax({ 
     url: url, 
     type: 'GET', 
     dataType: 'json', 
     timeout: 1000, 
     error: function(){ 
      alert('Error loading json document'); 
     }, 
     success: function(json){ 
       displayJson(json.foo); 
     } 
    }); 
} 

Répondre

3

non, c'est comme ça que je le ferais. Peut-être que j'utiliserais certaines des fonctions intégrées ajax, ou créer une fonction avec ces paramètres prédéfinis:

function ajax(url, error, success){ 
    $.ajax({ 
    url: url, 
    type: 'GET', 
    dataType: 'json', 
    timeout: 1000, 
    error: function(){ 
     alert('Error loading json document'); 
    }, 
    success: success, 
    }); 
} 


ajax('http://service', function(json){ 
    ajax(json.foo, function(json){ 
    displayJson(json.foo); 
    }); 
}); 
+0

+1 C'est une solution raisonnablement élégante. – cletus