Come devo passare i valori della stringa di query in una richiesta Ajax jQuery? Attualmente li faccio come segue, ma sono sicuro che esiste un modo più pulito che non richiede la codifica manuale.
$.ajax({
url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});
Ho visto esempi in cui i parametri della stringa di query vengono passati come un array, ma questi esempi che ho visto non usano il $.ajax()
modello, ma vanno direttamente a $.get()
. Per esempio:
$.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } );
Preferisco usare il formato $ .ajax () perché è quello a cui sono abituato (nessuna ragione particolarmente buona - solo una preferenza personale).
Modifica 09/04/2013:
Dopo che la mia domanda è stata chiusa (come "Too Localized") ho trovato una domanda (identica) correlata - con 3 voti nondimeno (il mio male per non averla trovata in primo luogo):
Usando jquery per creare un POST, come fornire correttamente il parametro 'data'?
Questo ha risposto perfettamente alla mia domanda, ho scoperto che farlo in questo modo è molto più facile da leggere e non ho bisogno di usare manualmente encodeURIComponent()
nell'URL o nei valori DATA (che è ciò che ho trovato poco chiaro nella risposta di bipen). Questo perché il data
valore viene codificato automaticamente tramite $.param()
). Nel caso in cui questo possa essere utile a chiunque altro, questo è l'esempio con cui sono andato:
$.ajax({
url: "ajax.aspx?ajaxid=4",
data: {
"VarA": VarA,
"VarB": VarB,
"VarC": VarC
},
cache: false,
type: "POST",
success: function(response) {
},
error: function(xhr) {
}
});