Pergunta

Eu tropecei neste comando enquanto aprendia AJAX.O cara que fez o tutorial não explicou esse comando, o que significam os parâmetros dentro do comando e para que ele é usado ... Abaixo está o código em que usei:

<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>
Foi útil?

Solução

HTTP é um protocolo.Parte desse protocolo é o conceito de cabeçalhos de solicitação.Quando ocorre um xhr, o texto é trocado entre o cliente e o servidor.Os cabeçalhos de solicitação são parte do texto que o cliente envia ao servidor.

Esta é uma forma de definir os cabeçalhos da solicitação.Os argumentos que você vê são

1) o cabeçalho a ser definido (neste caso, Content-type )
2) o valor do cabeçalho.(neste caso, x-www-form-urlencoded )

Veja isto para mais informações.

Outras dicas

É exatamente o que diz.Ele definirá uma informação de "cabeçalho" para o próximo XMLHttpRequest.

Um cabeçalho é basicamente um par chave / valor.É usado para transmitir "meta" informações ao servidor de destino para a solicitação em andamento.Em sua instância específica, é usado para informar ao servidor qual tipo de conteúdo é usado para esta solicitação.

Solicitações HTTP são mensagens passadas de um sistema de computador para outro de acordo com uma rotina definida (um 'protocolo' - aqui H yper T ext T ransfer P rotocol) para fazer coisas como enviar dados, pedir que os dados sejam enviados de volta, atualizar os dados enviados anteriormente, etc.

Um cabeçalho é basicamente uma informação sobre os dados no corpo da solicitação HTTP. Seu objetivo é informar à máquina que recebe a solicitação que tipo de dados está contido no corpo da solicitação, sua formatação, a linguagem usada, se é para definir um cookie, a data, a máquina host, etc.

Mais de um cabeçalho pode ser colocado em uma solicitação HTTP e cada cabeçalho possui um componente 'nome' e 'valor'. Em páginas da web, eles se parecem com

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

e você os encontra logo abaixo do topo da página da web dentro do elemento.

Para permitir que as pessoas enviem solicitações HTTP de uma função JavaScript, criamos um novo objeto XMLHttpRequest, assim como seu código faz com

xmlhttp = new XMLHttpRequest();

A este novo objeto vazio você pretende adicionar dados. Apesar do nome, XMLHttpRequest também permite o envio de dados em vários formatos diferentes de XML, por exemplo, Código HTML, texto, JSON, etc. Em seu exemplo, cada nome de dados será separado de seu valor por um caractere "=" e cada par de dados / valor será separado do próximo par por um caractere "&". Esse tipo de formatação é conhecido como codificação de URL.

Precisamos informar ao computador receptor como os dados no corpo da solicitação HTTP são codificados. Há um cabeçalho padrão para transmitir isso e é adicionado à solicitação por meio do método setRequestHeader (..) . Este método usa 2 parâmetros, o nome do cabeçalho e o valor do cabeçalho. Toda essa operação é realizada na linha

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

Este método setRequestHeader (..) deve ser aplicado à solicitação após a solicitação ser caracterizada com o open (...) método, mas antes que a solicitação final seja enviada com o método send (.) .

O método open (...) define: (1) o tipo de solicitação HTTP, por exemplo GET / POST / PUT etc; (2) a página da web que contém o script de tratamento para esta solicitação, por exemplo algum arquivo .php ou .js que faz a consulta apropriada ao banco de dados back end; e (3) a natureza da dinâmica do pedido, por exemplo pedidos assíncronos são atribuídos a um valor 'true', pedidos síncronos são atribuídos a 'false'.

O método send (.) anexa os dados a serem enviados dentro do corpo da solicitação, no seu caso a variável chamada 'parâmetros'.

Em sua questão mais ampla de quais situações setRequestHeader (..) é usado, eu diria que ele é usado na maioria das situações de solicitação HTTP. Mas alguns tipos de dados dados adicionados ao corpo de uma solicitação HTTP invoca uma configuração padrão para o cabeçalho 'Content-Type'.

Ele define o cabeçalho HTTP do tipo de conteúdo para conter dados codificados de url enviados de um formulário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top