Pergunta

Estou mudando um GET para um POST.Atualmente tenho .jsp?id=a,b,c,d.Ao mudar isso para uma postagem, ainda estou usando o parâmetro id a,b,c,d .Isso não está funcionando para mim.Posso enviar uma lista separada por vírgulas para um parâmetro de postagem?

Foi útil?

Solução

Estou errado ou a maioria das respostas está além do ponto?

Para responder precisamente à sua pergunta, sim, você pode enviar uma lista separada por vírgula para um parâmetro post. Para ser sincero, fiz uma rápida tentativa com um script PHP, mas não vejo por que Java se comportaria de maneira diferente. Um ponto com solicitações de postagem é precisamente que você tenha muito menos restrições à sintaxe (não há necessidade de escapar = e ou assim).

Portanto, se você explicar mais em detalhes o que "não funciona", talvez possamos ajudá -lo mais.

Outras dicas

Você pode fazer isso como uma entrada de formulário de seleção:

url? param = value1¶m = value2¶m = value3

Dependendo do seu idioma e da biblioteca, você poderá obter uma variedade de valores para o Param.


Por exemplo, com asp.net MVC, faço isso para obter uma variedade de strings:

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

Fionn está certo. Usar

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

Para definir vários valores como um único parâmetro. Para ler os valores em seu servlet/JSP, você pode usar

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

Defina para que seu parâmetro entregue vários valores, nomeando -o como uma matriz. Em vez de chamar a entrada de "id", chame "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>

Ao processar, lembre -se de extrair a matriz de valores enviados pelo parâmetro nomeado.

Você pode passar mais de um parâmetro usando

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

Aqui arquivos e TagCount são o ID dos parmeters a serem aprovados. Isso estava funcionando para o meu script Ajax. Em casos normais, você pode simplesmente adicionar os parâmetros por &. Então os parâmetros podem parecer

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

Na solicitação de postagem, o parâmetro mínimo 1 deve estar lá na lista de parâmetros. Se você está anexando o parâmetro a ser solicitado, ele não funcionará. Para isso, você precisa enviar o parâmetro como campo de formulário oculto. Ou tente usar o seguinte código

função 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 e POST têm duas finalidades diferentes.Da entrada HTTP da Wikipedia:

PEGAR

Solicita uma representação do recurso especificado.Observe que GET não deve ser usado para operações que causem efeitos colaterais, como usá-lo para realizar ações em aplicativos da web.Uma razão para isso é que GET pode ser usado arbitrariamente por robôs ou rastreadores, que não precisam considerar os efeitos colaterais que uma solicitação deve causar.Veja métodos seguros abaixo.

PUBLICAR

Envia dados para serem processados ​​(ex.de um formulário HTML) para o recurso identificado.Os dados estão incluídos no corpo da solicitação.Isso pode resultar na criação de um novo recurso ou na atualização de recursos existentes ou em ambos.

Basicamente, você deve usar GET para obter informações e POST para quaisquer ações que alterem o estado do servidor, como adicionar novos registros.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top