/ / Paramètres dans l'URL du POST - jquery, http, post

Paramètres dans l'URL du POST - jquery, http, 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 paramètres dans l’URL du POST (comme l’URL ci-dessus (pas l’URL2))?

Réponses:

2 pour la réponse № 1

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

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

J'utilise une combinaison afin que vous puissiez 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"}.

1 pour la réponse № 2

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 paramètres 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 paramètres 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 le 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 paramètres GET et POST. Cela compliquerait les choses.


1 pour la réponse № 3

Essayez comme ça:

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