Pregunta

¿Cuál es la ventaja de pasar datos como parámetros frente a parte de la URL en una solicitud Ajax GET?

Uso de parámetros:

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

Uso de URL:

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

Solución

Una ventaja de usar el argumento parámetros es que puede pasarle un objeto similar a Hash en lugar de como una cadena. (Sin embargo, si hace esto, asegúrese de establecer el parámetro method en " GET " , ya que el método predeterminado para las solicitudes de Prototype Ajax es POST; consulte Introducción al prototipo de Ajax para más detalles.

Otra ventaja, que está más en línea con el ejemplo que dio, es que puede separar la URL de solicitud de las opciones que se le envían. Esto podría ser útil si, por ejemplo, necesita enviar un montón de solicitudes similares a varias URL diferentes. (En ese caso, tener un parámetro común Hash que modifique para cada solicitud puede ser más útil que usar una cadena de parámetros).

Para obtener más información, consulte la documentación del prototipo de las opciones de Ajax .

Otros consejos

Uno de mis usos favoritos de los parámetros es pasar todos los campos de un formulario sin enumerarlos explícitamente:

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

Para responder esto, debe saber cómo funcionan los parámetros. Básicamente, HTTP (lo sé, hay más) tiene dos métodos para solicitar datos: GET y POST.

Para GET, los parámetros se agregan al recurso que solicita, como lo hizo en su código anterior: / my / resource / name? para1 = bla. Aquí, no hay diferencia si agrega directamente al nombre del recurso o usa la opción de parámetros. GET se usa normalmente para solicitar datos (Its GET;)

Para POST, los parámetros se escriben por separado del recurso en el cuerpo HTTP. Para esto, debe usar la opción de parámetros. POST se utiliza para enviar datos (enormes).

Para especificar qué método de solicitud usar, use la opción método .

Nota: El recurso GET tiene (dependiendo del servidor) un límite estricto en la longitud. Así que NUNCA envíe muchos datos usando GET.

También puede usar el formato:

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

La ventaja de hacerlo de esta manera es que puede cambiar de GET a POST sin cambiar la URL.

  • Legibilidad
  • Fácil de usar un objeto y serializarlo ( {store: 11200, product: " Meat "} )
  • Legibilidad

Realmente no importa desde un punto de vista técnico sobre esto aparte del formato y la preferencia porque las solicitudes de obtención siempre tienen los datos en la URL. Los parámetros son solo una forma conveniente de crear la solicitud GET.

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