Pregunta

Estoy cambiando un GET a un POST. Actualmente tengo .jsp? Id = a, b, c, d. Al cambiar esto a una publicación, sigo con el parámetro id a, b, c, d. Esto no está funcionando para mí. ¿Puedo enviar una lista separada por comas a un parámetro de publicación?

¿Fue útil?

Solución

¿Estoy equivocado o la mayoría de las respuestas no son relevantes?

Para responder con precisión a su pregunta, sí, puede enviar una lista separada por comas a un parámetro POST. Para ser honesto, simplemente hice un intento rápido con un script PHP, pero no veo por qué Java se comportaría de manera diferente. Un punto con las solicitudes POST es precisamente que tiene muchas menos restricciones en la sintaxis (no hay necesidad de escapar = & amp; o algo así).

Entonces, si explica más detalladamente lo que "no funciona", quizás podamos ayudarlo más.

Otros consejos

Puedes hacerlo como una entrada de formulario de selección:

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

Dependiendo de su idioma y biblioteca, debería poder obtener una serie de valores para param.


Por ejemplo, con asp.net mvc, hago esto para obtener una serie de cadenas:

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

Fionn tiene razón. Utilizar

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

para establecer varios valores en un solo parámetro. Para leer los valores en su Servlet / JSP puede usar

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

Configura para que tu parámetro entregue múltiples valores al nombrarlo como una matriz. En lugar de llamar a la entrada " id " ;, llámala " 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>

Al procesar, recuerde extraer la matriz de valores enviados por el parámetro nombrado.

Puede pasar más de un parámetro utilizando

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

Aquí, los archivos y tagcount son el ID de los parámetros que deben pasarse. Esto estaba trabajando para mi Ajax Script. En casos normales, solo puede agregar los parámetros & amp; . Así que los parámetros pueden verse como

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

en la solicitud posterior, debe haber un mínimo de 1 parámetro en la lista de parámetros. Si está agregando un parámetro a la solicitud, entonces no funcionará. Para eso necesitas enviar el parámetro como campo oculto de formulario. O intenta usar el siguiente código

función makePOSTRequest (url, parámetros) {

  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 y POST tienen dos propósitos diferentes. De la entrada HTTP de Wikipedia:

  

GET

     

Solicita una representación del recurso especificado. Tenga en cuenta que GET no debe usarse para operaciones que causan efectos secundarios, como usarlo para realizar acciones en aplicaciones web. Una razón para esto es que GET puede ser utilizado arbitrariamente por robots o rastreadores, que no deberían tener en cuenta los efectos secundarios que debería causar una solicitud. Vea los métodos seguros a continuación.

     

POST

     

Envía los datos a procesar (por ejemplo, desde un formulario HTML) al recurso identificado. Los datos están incluidos en el cuerpo de la solicitud. Esto puede dar como resultado la creación de un nuevo recurso o las actualizaciones de los recursos existentes o ambos.

Básicamente, debe usar GET para, bueno, obtener información y POST para cualquier acción que altere el estado del servidor, como agregar nuevos registros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top