Comment devrais-je passer des valeurs de chaîne de requête dans une requête Ajax jQuery? Je les fais actuellement comme suit mais je suis sûr qu'il existe un moyen plus propre qui ne nécessite pas que je encode manuellement.
$.ajax({
url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
success: function(response) {
//Faire quelque chose
},
error: function(xhr) {
//Faire quelque chose pour gérer l'erreur
}
});
J'ai vu des exemples où les paramètres de la chaîne de requête sont passés en tant qu'array mais ces exemples que j'ai vus n'utilisent pas le modèle $.ajax()
, 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 ce à quoi je suis habitué (aucune raison particulièrement valable - juste une préférence personnelle).
Modifier 09/04/2013:
Après la fermeture de ma question (comme étant "Trop Localisée"), j'ai trouvé une question connexe (identique) - avec 3 votes positifs également (Désolé de ne pas l'avoir trouvée en premier lieu):
Utiliser jQuery pour faire un POST, comment fournir correctement le paramètre 'data'?
Cela a parfaitement répondu à ma question, j'ai trouvé que faire de cette manière est beaucoup plus facile à lire et je n'ai pas besoin d'utiliser manuellement encodeURIComponent()
dans l'URL ou les valeurs DATA (ce qui était ambigu dans la réponse de bipen). C'est parce que la valeur data
est automatiquement encodée via $.param()
). Juste au cas où cela pourrait être utile à quelqu'un d'autre, voici l'exemple avec lequel j'ai continué:
$.ajax({
url: "ajax.aspx?ajaxid=4",
data: {
"VarA": VarA,
"VarB": VarB,
"VarC": VarC
},
cache: false,
type: "POST",
success: function(response) {
},
error: function(xhr) {
}
});