¿Cómo debería pasar valores de cadena de consulta en una solicitud jQuery Ajax? Actualmente los hago de la siguiente manera, pero estoy seguro de que hay una forma más limpia que no requiere que codifique manualmente.
$.ajax({
url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});
He visto ejemplos en los que los parámetros de cadena de consulta se pasan como una matriz, pero estos ejemplos que he visto no usan el $.ajax()
modelo, sino que van directamente a $.get()
. Por ejemplo:
$.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } );
Prefiero usar el formato $ .ajax () ya que es a lo que estoy acostumbrado (no hay una razón particularmente buena, solo una preferencia personal).
Editar 09/04/2013:
Después de que mi pregunta se cerró (como "Demasiado localizada") encontré una pregunta relacionada (idéntica), con 3 votos positivos no menos (Mi mal por no encontrarla en primer lugar):
Usando jquery para hacer una POST, ¿cómo suministrar adecuadamente el parámetro 'datos'?
Esto respondió a mi pregunta perfectamente, descubrí que hacerlo de esta manera es mucho más fácil de leer y no necesito usarlo manualmente encodeURIComponent()
en la URL o los valores de DATOS (que es lo que encontré poco claro en la respuesta de bipen). Esto se debe a que el data
valor se codifica automáticamente mediante $.param()
). En caso de que esto pueda ser útil para cualquier otra persona, este es el ejemplo que utilicé:
$.ajax({
url: "ajax.aspx?ajaxid=4",
data: {
"VarA": VarA,
"VarB": VarB,
"VarC": VarC
},
cache: false,
type: "POST",
success: function(response) {
},
error: function(xhr) {
}
});