333 votes

Comment passer des paramètres dans les requêtes GET avec jQuery

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) {

    }
});

1voto

Danwilliger Points 463

La propriété data vous permet d'envoyer une chaîne de caractères. Dans votre code côté serveur, acceptez-la en tant qu'argument de chaîne nommé "myVar" et vous pourrez ensuite l'analyser.

$.ajax({
    url: "ajax.aspx",
    data: [myVar = {id: 4, email: 'emailaddress', myArray: [1, 2, 3]}];
    success: function(response) {
    //Faire quelque chose
    },
    error: function(xhr) {
    //Faire quelque chose pour gérer l'erreur
    }
});

1voto

ujjal Points 185

Le paramètre de données de la méthode ajax vous permet d'envoyer des données côté serveur. Côté serveur, vous pouvez demander les données. Voici le code :

var id=5;
$.ajax({
    type: "get",
    url: "url du script côté serveur",
    data:{id:id},
    success: function(res){
        console.log(res);
    },
error:function(error)
{
console.log(error);
}
});

Côté serveur, vous pouvez le recevoir en utilisant la variable $_GET.

$_GET['id'];

0voto

Sterling Archer Points 8480

Vous pouvez utiliser le $.ajax(), et si vous ne voulez pas mettre les paramètres directement dans l'URL, utilisez le data:. Cela est ajouté à l'URL

Source: http://api.jquery.com/jQuery.ajax/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X