Disons que vous avez les URL suivantes pour POST,
url="http://www.example.com/processor?param1=val1¶m=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:
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); } })