Pregunta

Me topé con este comando mientras aprendía AJAX.El tipo que hizo el tutorial no explicó este comando, qué significan los parámetros dentro del comando y para qué se usa...A continuación se muestra el código en el que lo usé:

<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>
¿Fue útil?

Solución

HTTP es un protocolo.Parte de ese protocolo es el concepto de encabezados de solicitud.Cuando ocurre un 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 configurar los encabezados de las solicitudes.Los argumentos que ves son

1) el encabezado que se establecerá (en este caso, Tipo de contenido )
2) el valor del encabezado.(en este caso, x-www-form-urlencoded )

Consulte esto para obtener más información.

Otros consejos

Es exactamente lo que dice.Establecerá una información de "encabezado" para la siguiente XMLHttpRequest.

Un encabezado es prácticamente un par clave/valor.Se utiliza para transmitir "metainformación" al servidor de destino para la solicitud en curso.En su caso particular, se utiliza para indicarle al servidor qué tipo de contenido se utiliza para esta solicitud.

Las solicitudes HTTP son mensajes que se pasan de un sistema informático a otro de acuerdo con una rutina establecida (un 'protocolo', aquí H y por T ext T transferir P rotocol) para hacer cosas como enviar datos, solicitar que se devuelvan los datos, actualizar los datos enviados anteriormente, etc.

Un encabezado es básicamente una pieza de información sobre los datos en el cuerpo de la solicitud HTTP. Su propósito es decirle a la máquina que recibe la solicitud qué tipo de datos están incluidos en el cuerpo de la solicitud, su formato, el idioma utilizado, si es para establecer una cookie, la fecha, la máquina host, etc.

Se puede colocar más de un encabezado en una solicitud HTTP y cada encabezado tiene un componente "nombre" y un "valor". En las páginas web se ven como

<meta name="........" content="............."/>

y los encontrará justo debajo de la parte superior de la página web dentro del elemento.

Para permitir que las personas envíen solicitudes HTTP desde una función de JavaScript, creamos un nuevo objeto XMLHttpRequest, tal como lo hace su código con

xmlhttp = new XMLHttpRequest();

A este nuevo objeto vacío tiene la intención de agregar datos. A pesar de su nombre, XMLHttpRequest también permite enviar datos en varios formatos distintos a XML, p. Ej. Código HTML, texto, JSON, etc. En su ejemplo, cada nombre de datos estará separado de su valor por un carácter "=" y cada emparejamiento de datos / valor estará separado del siguiente emparejamiento por un carácter "&". Este tipo de formato se conoce como codificación de URL.

Tenemos que decirle a la computadora receptora cómo se codifican los datos dentro del cuerpo de la solicitud HTTP. Hay un encabezado estándar para transmitir esto y se agrega a la solicitud a través del método setRequestHeader (..) . Este método utiliza 2 parámetros, el nombre del encabezado y el valor del encabezado. Toda esta operación se consigue en la línea

xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

Este método setRequestHeader (..) debe aplicarse a la solicitud después de que la solicitud se caracterice con open (...) pero antes la solicitud final se envía con el método enviar (.) .

El método open (...) define: (1) el tipo de solicitud HTTP, p. ej. OBTENER / PUBLICAR / PONER, etc; (2) la página web que contiene el script de manejo para esta solicitud, p. Ej. algún archivo .php o .js que realiza la consulta adecuada a la base de datos back-end; y (3) la naturaleza de la dinámica de la solicitud, p. ej. A las solicitudes asincrónicas se les asigna un valor "verdadero", a las solicitudes síncronas se les asigna "falso".

El método enviar (.) adjunta los datos a enviar dentro del cuerpo de la solicitud, en su caso la variable llamada 'parámetros'.

En su pregunta más amplia de qué situaciones se usa setRequestHeader (..) , yo diría que se usa en la mayoría de las situaciones de solicitud HTTP. Pero algunos tipos de datos se agregaron al cuerpo de una solicitud HTTP invocan una configuración predeterminada para el encabezado 'Content-Type'.

Configura el encabezado HTTP de tipo de contenido para que contenga datos codificados en URL enviados desde un formulario.

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