2008-10-20 6 views
10

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

Uso de parámetros:

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

El uso de URL:

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

¿Estás usando Prototype como una biblioteca de Ajax? Parece que de los métodos y tal. – stephenbayer

+0

Prototipo de hecho. –

Respuesta

13

Una de las ventajas de utilizar el argumento parameters es que se puede pasar un objeto Hash -como en lugar de como una cadena. (Si lo hace, sin embargo, asegúrese de modo establecer el parámetro method a "GET", como el método por defecto para las peticiones Prototipo Ajax es POST; ver the Prototype Introduction to Ajax para más detalles.)

Otra ventaja, que está más en línea con el ejemplo que proporcionó 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 grupo 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 también una cadena de parámetro.)

Para obtener más información, consulte the Prototype documentation of Ajax options.

+0

Me gustaría aceptar esta respuesta, pero por algún motivo no obtengo el enlace. –

+0

Ya no es un enlace. Es la imagen de Checkmark debajo de la cantidad de votos. –

+0

Aquí hay una captura de pantalla: http://tinyurl.com/5rf9ys –

1
  • legibilidad
  • Fácil de usar un objeto y se serializan ({store: 11200, product: "Meat"})
  • legibilidad
+0

Su respuesta no hace referencia a la pregunta, no tiene sentido, e incluye "Legibilidad" dos veces. – Blairg23

+0

Suspiro ........... – nickf

0

Realmente no importa desde un punto de vista técnico en este otro que el formato y la preferencia porque get las solicitudes siempre tienen los datos en la URL. Los parámetros son solo una forma conveniente de compilar la solicitud GET.

9

Una de mis aplicaciones favoritas de parámetros es pasar en todos los campos de un formulario sin indicar explícitamente:

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

La función 'Form.Request' de Prototype lo hace aún más fácil. Dale un formulario y hará una solicitud de Ajax utilizando el atributo 'action' del formulario como la URL, además de que serializará el formulario y pasará esos valores como parámetros por defecto. – savetheclocktower

+0

Eso es genial. No sabía sobre eso. –

+0

http://www.prototypejs.org/api/form/request –

1

Para responder a esto, se debe conocer la forma en los parámetros de trabajo. HTTP, básicamente, (lo sé, hay más) tiene dos métodos para solicitar datos: GET y POST.

para consiguen, parámetros se anexan al recurso se solicita, como lo hizo en el código anterior:?/Mi/recurso/Nombre párrafo1 = bla. Aquí, no hay diferencia si agrega si directamente al nombre del recurso o usa la opción de parámetros. GET se utiliza normalmente para solicitar datos (Its GET;)

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

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

Nota: El recurso ha GET (en función de servidor a servidor) un límite duro de la longitud. Así que NUNCA envíes mucha información usando GET.

1

También puede utilizar el formato:

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

en la ventaja de hacerlo de esta manera es que se puede cambiar de un GET a un poste sin cambiar la URL.

Cuestiones relacionadas