2013-08-07 10 views
8

Posso inviare i miei dati a più pagine usando una chiamata Ajax? Non voglio usare un'altra chiamata ajax per questo.URL multipli nella stessa chiamata Ajax? È possibile?

codice

Esempio:

$.ajax({ 
    type: 'POST', 
    url: '../services/form_data.php', //can I send data to multiple url with same ajax call. 
    data: { 
     answer_service: answer, 
     expertise_service: expertise, 
     email_service: email, 
    }, 
    success: function (data) { 
     $(".error_msg").text(data); 
    } 
}); 
+3

No, ma è possibile scrivere una funzione che avvolge questo e accetta un url come parametro. –

+1

E come si intende gestire i diversi risultati dai diversi URL? – CCH

+0

Si potrebbe fare in modo che form_data.php invii autonomamente le diverse richieste. (o aggiungere un nuovo script in mezzo) – CCH

risposta

11

Non è possibile utilizzare il stesso codice per 1 richiesta da molte pagine.

MA è possibile inviare 2 richieste. la sua può essere fatto copia incolla il codice Ajax o costruire una funzione che prende URL e inviare richiesta con questo URL

function sendMyAjax(URL_address){ 
    $.ajax({ 
     type: 'POST', 
     url: URL_address, 
     data: { 
      answer_service: answer, 
      expertise_service: expertise, 
      email_service: email, 
     }, 
     success: function (data) { 
      $(".error_msg").text(data); 
     } 
    }); 
}; 
+0

aggiornato la mia domanda ... per favore date un'occhiata ... qualche consiglio? –

3

Una sola richiesta AJAX può parlare solo di un URL, ma è possibile creare più richieste AJAX per URL diversi, e faranno il loro lavoro allo stesso tempo - non avrebbe bisogno di attendere che si completi prima di sparare a quello successivo.

(Se gli URL sono sullo stesso server, si potrebbe considerare refactoring del codice lato server in modo che un singolo URL fa tutto il lavoro che i più URL fanno ora.)

+0

ha aggiornato la mia domanda ... per favore date un'occhiata ... qualche consiglio? –

7

Tutto ciò che serve è $.each e la forma a due parametri di $.ajax

var urls = ['/url/one','/url/two', ....]; 

$.each(urls, function(i,u){ 
    $.ajax(u, 
     { type: 'POST', 
     data: { 
      answer_service: answer, 
      expertise_service: expertise, 
      email_service: email, 
     }, 
     success: function (data) { 
      $(".error_msg").text(data); 
     } 
     } 
    ); 
}); 

Nota: i messaggi generati dalla callback di successo si sovrascriveranno come mostrato. Probabilmente vorrai usare $ ('# someDiv'). Append() o simile nella funzione success.

+0

aggiornato la mia domanda ... per favore date un'occhiata ... qualche consiglio? –

Problemi correlati