Paramètres dans l’URL du POST

Disons que vous avez les URL suivantes pour POST,

url="http://www.example.com/processor?param1=val1&param=val2" url2="http://www.example.com/processor" 

Supposons que vous envoyez une demande POST à ​​l’aide de Jquery.

 $.post(url,{},function(){}); 

En quoi est-ce différent de

 $.post(url2,{"param1":"val1","param2":"val2"},function(){}); 

Pouvez-vous aussi faire quelque chose comme

 $.post(url1,{"param1":"val1","param2":"val2"},function(){}); 

Est-ce une bonne pratique d’utiliser des parameters dans une URL POST (comme l’URL ci-dessus (pas l’URL2))?

La différence réside dans la gestion des variables sur le backend.

Dans url1, les parameters sont envoyés en tant que variables GET et dans url2, combinés au post (), les parameters sont envoyés en tant que variables POST.

J’utilise une combinaison, vous pouvez donc les utiliser de manière interchangeable. La règle générale consiste à utiliser GET pour envoyer des données de type “instructionnel” et à POST d’envoyer des “données utilisateur” pour la manipulation de données. Par exemple

 url="http://www.example.com/look_for_product?product_type=monitors&supplier=dell" 

Comparer aux

 $.post('http://www.example.com/place_order;,{"product_type":"monitor","supplier":"dell"}. 

Vous pouvez également utiliser une combinaison

 $.post('http://www.example.com/place_order?product_type=monitors&supplier=dell;,{"colour":"black","quantity":"3"}. 

Cela dépend de la tâche à accomplir pour la page:

  • Si vous créez un script d’enregistrement d’utilisateur, il est préférable d’utiliser les parameters POST afin qu’ils ne soient pas visibles pour l’utilisateur. (parce qu’ils sont généralement nombreux)
  • Si vous créez un script de recherche, il est préférable d’utiliser les parameters GET, car vous aurez peut-être besoin ultérieurement de fournir un lien direct directement vers cette recherche ou quelque chose comme ça …

De plus, si j’étais vous, j’utiliserais jQuery.ajax() il offre une interface plus personnalisable. Vous pouvez l’utiliser comme ceci:

 $.ajax({ type: "POST", url: "processor", dataType: "json", data: { param1: "val1", param2: "val2" } }).success(function( receivedValue ) { //some code }).error(function() { //some error handling }); 

Comme quelqu’un d’autre l’a dit ici, je ne vois aucune raison de combiner les parameters GET et POST. Cela compliquera les choses.

Essayez comme ça:

 $.ajax({ type: 'POST', url: 'http://www.example.com/processor', data: { 'param1': 'val1', 'param2': 'val2' }, success: function(msg){ alert('wow' + msg); } })