2012-10-01 3 views
7

Come inviare i parametri GET e POST con jquery ajax request simultaneamente?Jquery invia simultaneamente i parametri GET e POST alla richiesta Ajax

Sto cercando di aggiungere do=ajax&id=" + ID a url, ma come la richiesta di risultato levigato solo a sss.php senza stringa di query (ottenere parte). Grazie.

$.ajax({ 
    url: "sss.php?do=ajax&id=" + ID , 
    type: "post", 
    data: "ddd=sss", 
    // callback handler that will be called on success 
    success: function(response, textStatus, jqXHR){ 
     // log a message to the console 
     console.log("Hooray, it worked!"); 
    }, 
    // callback handler that will be called on error 
    error: function(jqXHR, textStatus, errorThrown){ 
     // log the error to the console 
     console.log(
      "The following error occured: "+ 
      textStatus, errorThrown 
     ); 
    } 
}); 
+0

tenta di utilizzare '$ .post' invece di' $ .ajax' – defuz

+1

@defuz: Lui/lei * è * utilizzando 'POST', per tutti gli effetti. ['post'] (http://api.jquery.com/jQuery.post/) è solo un comodo wrapper per le richieste' type: "post" '. –

+0

Per me la soluzione sta funzionando. Dovrebbe funzionare anche per te. Vai e controlla la tua console di rete Chrome per vedere quale richiesta è stata inviata al server. –

risposta

9

Penso che si stia verificando un errore di osservazione o si veda un problema lato server piuttosto che jQuery. Quando faccio un post like this:

$.ajax({ 
    url: "http://jsbin.com/eduzif/1?foo=bar", 
    type: "post", 
    data: "baz=doh", 
    success: function() { 
    display("Done, look at your console's network tab"); 
    } 
}); 

... sia la stringa di query e dati POST vengono inviati al server. È facile controllarlo se usi un browser moderno come Chrome o Firefox e guarda nella scheda Rete della console dopo aver attivato il post. Nel mio caso:

Image showing post with both query string and form data

(si può ignorare che il server ha risposto con sopra 403; JSBin non permette POST, ma che non pregiudica quello che vediamo nella richiesta di andare al server.)

Quindi la risposta è: doppio controllo come si sta ricevendo il lato server dei dati. I parametri nell'URL (parametri di stile "GET") sono disponibili come parametri della stringa di query (parte dell'URL); i parametri di stile "POST" sono disponibili come dati "forma" (ad es. il corpo della risposta). A seconda della tecnologia lato server che si sta utilizzando, di solito ci sono diversi modi per recuperare i parametri GET (stringa di query) rispetto ai parametri POST (modulo dati/corpo).

+0

grazie, ricontrollato, copia & codice passato e ora sembra funzionare. Non sa che cosa è stato sbagliato con la prima versione del mio codice :(grazie – abrahab

+0

+1, capito, tutti i giorni ' COSÌ 'mi insegna qualcosa. –