Ver Mensaje Individual
  #9 (permalink)  
Antiguo 31/10/2011, 01:43
iovan
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 8 meses
Puntos: 188
Respuesta: duda de CARGANDO... con Ajax

Veras.
Comenzamos con Peticiones HTTP.
El formato de una petición HTTP es de la siguiente forma:

<linea-petición>
<cabecera>
<linea en blanco>
[<cuerpo-petición>

Para mayor información sobre peticiones HTTP: (Buscar en google)

Concentrate en <cabeceras>

Cuando un navegador realiza una petición HTTP a un servidor, este manda una cadena de consultas llamada <cabeceras>

Las cabeceras proveen al servidor de información adicional que le será util para conocer como debe procesar dicha petición.

Dicho todo esto vamos a ver como luce una petción GET y una POST ambas definidas en HTTP

Petición GET

Código http:
Ver original
  1. GET / HTTP/1.1
  2. Host: www.forosdelweb.com
  3. User-Agent: Mozilla/7.0 (Windows..... etc.......
  4. Connection: Keep-Alive
  5.  
  6. [cuerpo]

Las cabeceras son: HOST que indica al servidor que la petición se refiere a www.forosdelweb.com

la versión HTTP 1.1 requiere de la cabecerá HOST, la 1.0 no la requiere

User-Agent, indica 2 cosas:
[*] Es la piedra angular de la mayor parte de la lógica para la detección del navedor[*] Indica que es accesible por los scripts tanto del lado del servidor como el del cliente.

Y por ultimo Connection: por defecto Keep-Alive === Te debo la explicación esta no me la sé.

---------------------------------------

Ya para no aburrirte. Vemos un ejemplo de una petición POST

NOTA: Una petición POST proporciona información adicional al servidor.

Código http:
Ver original
  1. POST / HTTP/1.1
  2. Host: www.forosdelweb.com
  3. User-Agent: Mozilla/7.0 etc.....
  4. Content-Type: application/x-www-form-urlencode
  5. Content-Length: [numero_de_parametros]
  6. Connection: Keep-Alive
  7.  
  8. [cuerpo de la petición = "PARAMETROS"]

Como puedes ver, las lineas 4,5 y 6 se parecen bastante a lo que tienes en tu código:

Código Javascript:
Ver original
  1. http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2.   http_request.setRequestHeader("Content-length", parameters.length);
  3.   http_request.setRequestHeader("Connection", "close");

mmm bueno, supongo que con esto ya obtuviste la respuesta que buscabas.

==> Lo que hacen esas 3 lineas de tu código es configurar las cabeceras que constituirán la petición que se enviará al servidor.

Y como son definiciones de cabeceras hay que tener ciertas consideraciones.

Para resumir: Antes de enviar esas cabeceras debes tener especial cuidado en no imprimir nada desde el servidor.

Por ejemplo, en el caso de trabajar en asincrónico con un PHP, este PHP no deberá tener un echo, print, etc.. o un espacio en blanco antes de la etiqueta <?php porque puede ser interpretado por el navegador, o cualquier contenido html antes de la etiqueta <?php

Si ocurre alguno de estos casos el código no servirá, y como no estás tratando las excepciones o trabajando con lenguaje de servidor, [creo que] el navegador no te indicará error si no solamente tu código no funcionará.

Bueno, etc....

Y la segunda consideración es:

Investiga porque en la linea

Código Javascript:
Ver original
  1. http_request.setRequestHeader("Connection", "close");

dice "close"

Mira que pasa si le pones "Key-Alive"

Es todo, un saludo.

EDITO: JAJA no es "Key-Alive" si no "Keep-Alive"
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.