2008-10-07 22 views
13

Estoy cambiando un GET a un POST. Actualmente tengo .jsp? Id = a, b, c, d. Al cambiar esto a una publicación, todavía estoy sentado el parámetro id a, b, c, d. Esto no funciona para mí ¿Puedo enviar una lista separada por comas a un parámetro de publicación?POST parámetros múltiples

Respuesta

13

Estoy equivocado o la mayoría de las respuestas no vienen al caso?

Para responder con precisión a su pregunta, sí, puede enviar una lista separada por comas a un parámetro POST. Para ser sincero, hice una prueba rápida 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 sobre la sintaxis (no es necesario que escape = & o similar).

Así que si explica más en detalle lo que "no funciona", quizás podamos ayudarlo más.

14

Puede hacerlo como una forma de selección de entrada:?

url PARAM = valor1 & PARAM = valor2 & PARAM = Value3

Dependiendo de que el lenguaje y la biblioteca debe ser capaz de obtener una gran variedad de valores para param.


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

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

Fionn es correcto. Use

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

para establecer múltiples valores en un solo parámetro. Para leer los valores en su servlet/JSP puede utilizar

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

Conjunto de tener su parámetro de varios valores entregar al nombrarlo como una matriz. lugar de llamar a la entrada "ID", lo llaman "[] ​​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> 

procesamiento Cuando, recordar para extraer la matriz de valores enviados por el parámetro con nombre.

0

en la solicitud de solicitud mínimo 1 parámetro debe estar allí en la lista de parámetros. Si está agregando un parámetro para solicitarlo, no funcionará. para eso necesitas enviar el parámetro como campo de formulario oculto. También puede usar el código siguiente

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); 

}

0

GET y POST tienen dos propósitos diferentes. A partir de la entrada de Wikipedia HTTP:

GET

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

la POST

datos somete a ser procesados ​​(por ejemplo de un formulario HTML) para el 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, bien, OBTENER información y POST para cualquier acción que altere el estado del servidor, como agregar nuevos registros.

1

se puede pasar más de un parámetro mediante el uso de

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

Aquí archivos y tagcount corresponden a la identificación de los parmeters ser pasado. Esto estaba funcionando para mi Ajax Script. En casos normales, puede agregar los parámetros por &. Entonces los parámetros pueden verse como

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