Comment dois-je transmettre des valeurs de chaîne de requête dans une demande jQuery Ajax? Je les fais actuellement comme suit, mais je suis sûr qu'il existe un moyen plus propre qui ne nécessite pas que j'encode manuellement.
$.ajax({
url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});
J'ai vu des exemples où les paramètres de chaîne de requête sont passés sous forme de tableau, mais ces exemples que j'ai vus n'utilisent pas le $.ajax()
modèle, au lieu de cela, ils vont directement $.get()
. Par exemple:
$.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } );
Je préfère utiliser le format $ .ajax () car c'est à cela que je suis habitué (pas de raison particulièrement bonne - juste une préférence personnelle).
Modifier 09/04/2013:
Après que ma question a été fermée (comme "Trop localisée"), j'ai trouvé une question connexe (identique) - avec 3 votes positifs non moins (mon mal de ne pas l'avoir trouvée en premier lieu):
En utilisant jquery pour créer un POST, comment fournir correctement le paramètre 'data'?
Cela a répondu parfaitement à ma question, j'ai trouvé que le faire de cette façon est beaucoup plus facile à lire et je n'ai pas besoin d'utiliser manuellement encodeURIComponent()
dans l'URL ou les valeurs DATA (ce que j'ai trouvé peu clair dans la réponse de bipen). En effet, la data
valeur est encodée automatiquement via $.param()
). Juste au cas où cela pourrait être utile à quelqu'un d'autre, voici l'exemple avec lequel je suis allé:
$.ajax({
url: "ajax.aspx?ajaxid=4",
data: {
"VarA": VarA,
"VarB": VarB,
"VarC": VarC
},
cache: false,
type: "POST",
success: function(response) {
},
error: function(xhr) {
}
});