Question

Je change un GET en un POST. Actuellement, j'ai .jsp? Id = a, b, c, d. Lorsque je change ceci en post, je suis toujours assis avec le paramètre id a, b, c, d. Cela ne fonctionne pas pour moi. Puis-je envoyer une liste séparée par des virgules à un paramètre post?

Était-ce utile?

La solution

Est-ce que je me trompe ou la plupart des réponses ne sont pas pertinentes?

Pour répondre précisément à votre question, vous pouvez effectivement envoyer une liste séparée par des virgules à un paramètre POST. Pour être honnête, je viens de faire un essai rapide avec un script PHP, mais je ne vois pas pourquoi Java se comporterait différemment. Un point avec les requêtes POST est précisément que vous avez beaucoup moins de contraintes sur la syntaxe (nul besoin d’échapper = = etc.).

Donc, si vous expliquez plus en détail ce qui ne fonctionne pas, nous pouvons peut-être vous aider davantage.

Autres conseils

Vous pouvez le faire comme une entrée de formulaire sélectionnée:

url? param = valeur1 & amp; param = valeur2 & amp = param = valeur3

En fonction de votre langue et de votre bibliothèque, vous devriez pouvoir obtenir un tableau de valeurs pour param.

Par exemple, avec asp.net mvc, je fais ceci pour obtenir un tableau de chaînes:

string[] values = Request.Form.GetValues("param");

Fionn a raison. Utilisez

url?param=value1&param=value2&param=value3

pour définir plusieurs valeurs sur un seul paramètre. Pour lire les valeurs dans votre Servlet / JSP, vous pouvez utiliser

String[] values = request.getParameterValues("param");

Choisissez que votre paramètre fournisse plusieurs valeurs en le nommant comme un tableau. Au lieu d'appeler l'entrée "id", appelez-la "id []"

.
<form method="post">
<select multiple name="id[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="send">
</form>

Lors du traitement, n'oubliez pas d'extraire le tableau de valeurs envoyé par le paramètre nommé.

Vous pouvez transmettre plusieurs paramètres en utilisant

        xmlhttp
                .send("files=" + files.value + "&tagcount="
                        + tagcount.value);

Ici, les fichiers et nombre de balises sont l'identifiant des paramètres à transmettre. Cela fonctionnait pour mon script Ajax. Dans des cas normaux, vous pouvez simplement ajouter les paramètres avec & amp; . Donc, les paramètres peuvent ressembler à

"parameter1=" + parameter1.value + "&parameter2=" + parameter2.value

dans la demande post minimum 1 paramètre devrait être là dans la liste de paramètres. Si vous ajoutez un paramètre à demander, cela ne fonctionnera pas. pour cela, vous devez envoyer le paramètre sous forme de champ masqué. Ou essayez d’utiliser le code suivant

fonction makePOSTRequest (url, paramètres) {

  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
        // set type accordingly to anticipated content type
        //http_request.overrideMimeType('text/xml');
        http_request.overrideMimeType('text/html');
     }
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  }

  http_request.onreadystatechange = alertContents;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);

}

GET et POST ont deux objectifs différents. A partir de l'entrée HTTP de Wikipedia:

  

OBTENIR

     

Demande une représentation de la ressource spécifiée. Notez que GET ne doit pas être utilisé pour des opérations qui entraînent des effets secondaires, tels que son utilisation pour effectuer des actions dans des applications Web. Une des raisons à cela est que GET peut être utilisé de manière arbitraire par des robots ou des robots, ce qui ne devrait pas nécessiter de prendre en compte les effets secondaires qu'une demande devrait avoir. Voir les méthodes sécurisées ci-dessous.

     

POST

     

Soumet les données à traiter (par exemple, à partir d'un formulaire HTML) à la ressource identifiée. Les données sont incluses dans le corps de la demande. Cela peut entraîner la création d'une nouvelle ressource ou la mise à jour de ressources existantes, ou les deux.

En principe, vous devez utiliser GET pour, ainsi, les informations GET et POST pour toute action modifiant l'état du serveur, telle que l'ajout de nouveaux enregistrements.

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