Question

Quel est l'avantage de transmettre des données sous forme de paramètres par rapport à une partie de l'URL dans une requête Ajax GET?

Utilisation des paramètres:

var ajax = new Ajax.Request('server.php',{
    parameters: 'store=11200&product=Meat',
    onSuccess: function(myData){whatever}
});

Utilisation de l'URL:

var ajax = new Ajax.Request('server.php?store=11200&product=Meat',{
    onSuccess: function(myData){whatever}
});
Était-ce utile?

La solution

Un des avantages de l’argument parameters est que vous pouvez lui transmettre un objet de type Hash au lieu d’une chaîne. (Dans ce cas, assurez-vous de définir le paramètre method sur " GET & <; code>, car la méthode par défaut pour les demandes Prototype Ajax est POST; voir le prototype Introduction à Ajax pour plus de détails.)

Un autre avantage, plus conforme à l'exemple que vous avez donné, est que vous pouvez séparer l'URL de la demande des options qui lui sont envoyées. Cela peut être utile si, par exemple, vous devez envoyer un ensemble de demandes similaires à plusieurs URL différentes. (Dans ce cas, il peut être plus utile de disposer d'un paramètre Hash commun que vous modifiez pour chaque demande, plutôt que d'utiliser une chaîne de paramètre.)

Pour plus d'informations, consultez la documentation sur le prototype des options Ajax .

Autres conseils

L’une de mes utilisations préférées des paramètres est de passer dans tous les champs d’un formulaire sans les lister explicitement:

new Ajax.Request('/myurl.php', {
  method:  'get',
  parameters:  $('myForm').serialize(),
  onSuccess:  successFunc(),
  onFailure:  failFunc()
}

Pour répondre à cette question, vous devez connaître le fonctionnement des paramètres. En gros, HTTP (je sais, il y en a plus) a deux méthodes pour demander des données: GET et POST.

Pour GET, les paramètres sont ajoutés à la ressource que vous demandez, comme vous l'avez fait dans votre code ci-dessus: / my / resource / name? para1 = bla. Ici, il n'y a pas de différence si vous ajoutez si directement au nom de la ressource ou utilisez l'option parameters. GET est normalement utilisé pour demander des données (son GET;)

Pour POST, les paramètres sont écrits séparément de la ressource dans le corps HTTP. Pour cela, vous devez utiliser l'option parameters. Le POST est utilisé pour envoyer des données (énormes).

Pour spécifier la méthode de requête à utiliser, utilisez l'option méthode .

Remarque: la ressource GET a (selon les serveurs) une limite stricte à la longueur. Donc, ne jamais envoyer beaucoup de données en utilisant GET.

Vous pouvez également utiliser le format:

var ajax = new Ajax.Request('server.php',{
  parameters: {
     store: 11200,
     product: "Meat"
  }
  onSuccess: function(myData){whatever}
});

L’avantage de le faire de cette façon est que vous pouvez passer d’un GET à un POST sans changer l’URL.

  • Lisibilité
  • Facilité d'utilisation et de sérialisation d'un objet ( {magasin: 11200, produit: "Viande"} )
  • Lisibilité

D'un point de vue technique, cela n'a pas d'importance autre que le formatage et les préférences car les requêtes get ont toujours les données dans l'URL. Les paramètres ne sont qu’un moyen pratique de générer la requête GET.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top