2012-01-16 19 views
9

Me tropecé con este comando mientras aprendía AJAX. El tipo que hizo el tutorial no explica este comando, lo que hacen los parámetros dentro de la orden significan y qué es lo utiliza ... A continuación se muestra el código que utilicé en:¿Qué es 'xmlhttp.setRequestHeader();' y en qué situaciones se usa?

<script type="text/javascript"> 

     function insert(){ 
      if(window.XMLHttpRequest){ 
       xmlhttp = new XMLHttpRequest(); 
      }else{ 
       xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
      }; 

      xmlhttp.onreadystatechange = function(){ 
       if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
        document.getElementById('message').innerHTML = xmlhttp.responseText; 
       }; 
      }; 

      parameters = 'insert_text='+document.getElementById('insert_text').value; 

      xmlhttp.open('POST','ajax_posting_data.php',true); 
      xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
      xmlhttp.send(parameters); 
     }; 

    </script> 
+4

Le sugiero que deseche ese tutorial y use jQuery. Su código no solo crea variables globales innecesarias, sino que también es mucho más complicado de lo que sería con jQuery. Además, su cadena de consulta se rompería si el campo de texto contiene un carácter '&'. – ThiefMaster

+3

El documento está aquí: http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method – talnicolas

+6

El op estaba preguntando sobre el uso de JavaScript nativo, no de jQuery, entonces ¿por qué decirles que eliminen su solución existente? Me gusta aprender cómo funciona JavaScript nativo para que pueda entender las ventajas y desventajas con el uso de jQuery y tomar decisiones más inteligentes. Y "solo use jQuery" no explicará la naturaleza de los encabezados de solicitud de todos modos. – gregturn

Respuesta

14

HTTP es un protocolo . Parte de ese protocolo es el concepto de encabezados de solicitud. Cuando ocurre una xhr, el texto se intercambia entre el cliente y el servidor. Los encabezados de solicitud son parte del texto que el cliente envía al servidor.

Esta es una forma de establecer los encabezados de las solicitudes. Los argumentos que se ven son

1) la cabecera para configurar (en este caso, Content-Type)
2) el valor de la cabecera. (En este caso, x-www-form-urlencoded)

See this for more info.

+0

Sé lo que son los requestHeaders, pero de hecho encontré este ejemplo útil cuando necesité complementos de encabezados de solicitud en una aplicación que no tenía jQuery. – gregturn

0

Se establece el encabezado HTTP de tipo de contenido para contener datos de URL codificada enviados desde un formulario.

3

Es exactamente lo que dice. Establecerá una información de "encabezado" para el próximo XMLHttpRequest.

Un encabezado es más o menos un par de clave/valor. Se usa para transmitir información de "meta" al servidor de destino para la solicitud en curso. En su caso particular, se usa para indicarle al servidor qué tipo de contenido se utiliza para esta solicitud.

Cuestiones relacionadas