2009-05-17 13 views
10

Soy nuevo en AJAX, pero a modo de resumen, me gustaría saber qué formatos puede cargar y descargar. ¿Está limitado a JSON o XML o incluso puede enviar tipos binarios como HTML MP3 o UTF-8? Y, por último, ¿tiene control total sobre los datos, byte para byte en algo así como una matriz de bytes, o solo se envía/recibe una cadena?¿Qué formatos de datos puede transferir AJAX?

+0

¿Habla de un entorno diferente al de un navegador? –

+0

No. Navegadores regulares. –

Respuesta

4

Si estamos hablando de ajax, estamos hablando de javascript? Y sobre XMLHTTPRequest?

XMLHttpRequest que es solo una solicitud http puede transferir todo. Pero no hay una matriz de bytes en javascript. Solo cadenas, números y tal. Todo lo que obtienes de una llamada ajax es una pieza de texto (responseText). Eso podría analizarse en XML (lo que le da respuesta a XML). Las codificaciones especiales deberían ser más una cuestión de transporte http.

Las cosas binarias no dependen de ajax, sino que dependen del javascript. Existen algunas codificaciones extrañas para las cadenas para entregar datos de bytes en javascript (especialmente para imágenes) pero no es una solución general.

HTML no es un problema y ese es el caso de uso más destacado. A partir de este tipo de solicitud, se obtiene una cadena HTML entregada y se agrega a algún nodo en el DOM por innerHTML que analiza el HTML.

1

Puede transferir cualquier tipo de datos, ya sea de cadena o bytes

+0

¿Cómo se producen/consumen datos binarios en javascript? –

+0

Quizás puedas usar String.charCodeAt (index) para obtener el código ASCII (creo) de un char particular dentro de una cadena. –

1

Puede enviar lo que quiera, el problema puede ser cómo manejar la situación una vez que llegue;)

HTML estándar es probablemente el más tipo común de contenido ajax en uso: también puede elegir la codificación de caracteres, aunque siempre es mejor seguir con un tipo de codificación.

0

Puede mover todo lo que se pueda enviar a través de HTTP. Existen restricciones sobre la realización de la llamada al mismo dominio que la página cargada, pero no sobre el contenido de la transferencia. También puede realizar transacciones GET o POST.

2

Como los datos se transportan a través de HTTP, deberá asegurarse de utilizar algún tipo de codificación. Uno de los más populares es la codificación base64. Puede encontrar más información en: http://www.webtoolkit.info/javascript-base64.html

La metodología consiste en codificar en base64 los datos que desea enviar y luego decodificar en base64 los datos en el servidor (o el cliente) y usar los datos originales como lo desea.

1

AJAX simplemente significa que está transfiriendo datos de manera asincrónica a través de HTTP con una llamada de JavaScript. Entonces su script hace una solicitud HTTP "normal" usando el objeto XmlHttpRequest(). Sin embargo, como su nombre lo indica, en realidad solo es adecuado para formatos de datos basados ​​en texto, ya que generalmente desea realizar alguna acción en el lado del cliente con los datos que obtuvo del servidor (no siempre, a veces la gente simplemente envía XmlHttpRequests solo a actualizar algo en el servidor).

En una nota lateral, nunca he visto una aplicación donde el envío de datos binarios hubiera sido apropiado de todos modos.

La mayoría de las veces, las personas eligen enviar datos al servidor con POST o GET (que es básicamente un método para transferir pares de nombre-valor inherentes a HTTP). Para enviar datos más complejos, por ejemplo estructuras jerárquicas, necesitan ser codificados de alguna manera.Los documentos XML se pueden crear de forma nativa por JavaScript, enviarse al servidor y analizarse en los tipos de datos necesarios. Pero dado que XML puede ser un poco molesto, muchos desarrolladores utilizan datos codificados JSON en su lugar porque es fácil de generar y fácil de analizar.

Lo que devuelve el servidor es igualmente arbitrario. Normalmente, especifica una función de devolución de llamada en su Javascript que maneja los datos entrantes. Una vez más, las opciones populares son XML y JSON, que se analizan fácilmente en un objeto de documento o una estructura de matriz, respectivamente. También puede enviar texto sin formato u otro tipo de embalaje, pero recuerde que debe encargarse de extraer los datos utilizables de él. A veces, también puede ser beneficioso enviar fragmentos de HTML reales al cliente para actualizar algo en la página directamente.

Para empezar, sugiero que eche un vistazo a JQuery. Es un marco muy liviano que abstrae muchas de las cosas malas de compatibilidad y te permite escribir solicitudes AJAX muy bien.

Cuestiones relacionadas