Pergunta

Qual é a vantagem de passar dados como parâmetros vs parte da URL em uma solicitação GET Ajax?

Usando parâmetros:

var ajax = new Ajax.Request('server.php',{
    parameters: 'store=11200&product=Meat',
    onSuccess: function(myData){whatever}
});

Usando URL:

var ajax = new Ajax.Request('server.php?store=11200&product=Meat',{
    onSuccess: function(myData){whatever}
});
Foi útil?

Solução

Uma vantagem de usar o argumento parameters é que você pode passá-lo um Hash-como objeto em vez de como uma string. (Se você fizer isso, no entanto, certifique-se assim definir o parâmetro method para "GET", como o método padrão para solicitações Prototype AJAX é POST, veja Protótipo Introdução ao Ajax para mais detalhes.)

Outra vantagem, que é mais em linha com o exemplo que você deu, é que você pode separar o URL pedido das opções que são enviados a ele. Isto pode ser útil se, por exemplo, você precisa enviar um monte de pedidos semelhantes a vários URLs diferentes. (Nesse caso, ter um parâmetros comuns Hash que você modificar para cada solicitação pode ser mais útil, do que utilizar uma string parâmetro, também.)

Para obter mais informações, consulte a documentação Protótipo de opções Ajax .

Outras dicas

Um dos meus usos favoritos de parâmetros é passar em todos os campos de um formulário sem listá-los explicitamente:

new Ajax.Request('/myurl.php', {
  method:  'get',
  parameters:  $('myForm').serialize(),
  onSuccess:  successFunc(),
  onFailure:  failFunc()
}

Para responder a isso, você deve saber a forma como os parâmetros funcionam. HTTP, basicamente, (eu sei, existem mais) tem dois métodos para dados de solicitação:. GET e POST

Para GET, parâmetros são anexados ao recurso que você pedir, como fez em seu código acima: / meu / recurso / nome para1 = bla?. Aqui, não há diferença se você acrescentar se diretamente ao nome do recurso ou usar a opção parâmetros. GET é normalmente usado para dados de solicitação (GET Sua;)

Para o POST, o parâmetros são escritos em separado a partir do recurso no corpo HTTP. Para isso, você deve usar a opção parâmetros. POST é usado para enviar dados (enorme).

Para especificar o método pedido para uso, use o método opção.

Nota: O recurso GET tem (dependendo de servidor para servidor) um limite rígido sobre o comprimento. Por isso, nunca enviar muitos dados usando GET.

Você também pode usar o formato:

var ajax = new Ajax.Request('server.php',{
  parameters: {
     store: 11200,
     product: "Meat"
  }
  onSuccess: function(myData){whatever}
});

Em vantagem de fazê-lo desta maneira é que você pode mudar de um GET a um POST sem alterar a URL.

  • A legibilidade
  • Fácil de usar um objeto e publicando-o ({store: 11200, product: "Meat"})
  • A legibilidade

Não importa realmente do ponto de vista técnico sobre isso além de formatação e preferência porque solicitações GET sempre tem os dados na URL. Os parâmetros são apenas uma maneira conveniente de construir o pedido GET.

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