Comment puis-je passer les valeurs de chaîne de requête dans une requête jQuery Ajax? Je les fais maintenant comme suit, mais je suis sûr qu'il existe une façon plus propre qui ne nécessite pas que je code 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 la chaîne de requête sont transmis en tant que tableau, mais ces exemples que j'ai vus n'utilisent pas le $.ajax()
, mais 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é (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 (en tant que «trop localisé»), j'ai trouvé une question liée (identique) – avec 3 upvotes non-moins (Ma mauvaise pour ne pas le trouver en premier lieu):
En utilisant jquery pour créer un POST, comment fournir correctement le paramètre 'data'?
Cela a répondu à ma question parfaitement, j'ai constaté 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é difficile dans la réponse de bipen). C'est parce que la valeur de data
est codée automatiquement via $.param()
). Juste au cas où cela pourrait être utile à toute autre personne, c'est 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) { } });
Utilisez l'option de données de ajax. Vous pouvez envoyer l'objet de data
option serveur par data
dans ajax et le type
qui définit comment vous l'envoyez ( POST
ou GET
). Le type par défaut est la méthode GET
Essaye ça
$.ajax({ url: "ajax.aspx", type: "get", //send it through get method data: { ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress }, success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } });
Et vous pouvez obtenir les données par
$_GET['ajaxid'] //gives 4 $_GET['UserID'] //gives you the sent userid
Placez vos paramètres dans la partie de data
de l'appel ajax
. Voir les documents . Ainsi:
$.ajax({ url: "/TestPage.aspx", data: {"first": "Manu","Last":"Sharma"}, success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } });
La propriété de données vous permet d'envoyer une chaîne. Sur votre code côté serveur, acceptez-le en tant que nom d'argument de chaîne "myVar", puis vous pouvez l'analyser.
$.ajax({ url: "ajax.aspx", data: [myVar = {id: 4, email: 'emailaddress', myArray: [1, 2, 3]}]; success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } });
Essayez d'ajouter ceci:
$.ajax({ url: "ajax.aspx", type:'get', data: {ajaxid:4, UserID: UserID , EmailAddress: encodeURIComponent(EmailAddress)}, dataType: 'json', success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } });
Dépend de ce type de données attendu, vous pouvez affecter html, json, script, xml
Vous pouvez utiliser $.ajax()
, et si vous ne souhaitez pas mettre les paramètres directement dans l'URL, utilisez les data:
$.ajax()
Ceci est ajouté à l'URL