Latest web development tutorials

AJAX - o envio de um pedido para o servidor

objeto XMLHttpRequest para trocar dados com o servidor.


Envia uma solicitação para o servidor

Para enviar uma solicitação para o servidor, usamos método aberto do objeto XMLHttpRequest () e send ():

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

caminho descrição
open(método, url, assíncrona)

Tipo especifica o pedido, URL e processamento se assíncrono de pedidos.

  • Método:o tipo de solicitação; GET ou POST
  • url:o local do arquivo no servidor
  • assíncrona: true (assíncrono)ou falso (síncrono)
enviar(string)

Envia um pedido para o servidor.

  • string:apenas para solicitações POST


GET ou POST?

Comparado com o POST, ficar mais fácil e mais rápido, e na maioria dos casos pode ser utilizado.

No entanto, nos seguintes casos, por favor use o pedido POST:

  • Não é possível usar os arquivos de cache (arquivos ou atualizar o banco de dados no servidor)
  • Enviar grandes quantidades de dados (POST não limitar a quantidade de dados) para o servidor
  • Ao enviar a entrada do usuário contém caracteres desconhecidos, POST é mais estável e mais confiável do que GET

pedido GET

Um pedido GET simples:

Exemplos

xmlhttp.open("GET","demo_get.html",true);
xmlhttp.send();

tente »

No exemplo acima, você pode obter os resultados em cache.

Para evitar isso, adicione um ID único para o URL:

Exemplos

xmlhttp.open("GET","demo_get.html?t=" + Math.random(),true);
xmlhttp.send();

tente »

Se você quiser enviar informações através do método GET, adicionar as informações para o URL:

Exemplos

xmlhttp.open("GET","demo_get2.html?fname=Henry&lname=Ford",true);
xmlhttp.send();

tente »


solicitação POST

Um pedido POST simples:

Exemplos

xmlhttp.open("POST","demo_post.html",true);
xmlhttp.send();

tente »

Se você precisa que dados como uma forma POST HTML, utilize setRequestHeader () para adicionar cabeçalhos HTTP. Em seguida, especifique que você deseja enviar dados no método send ():

Exemplos

xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

tente »

方法 描述
setRequestHeader(header,value)

向请求添加 HTTP 头。

  • header: 规定头的名称
  • value: 规定头的值


URL - arquivos no servidor

argumentourlopen () método é o endereço do servidor de arquivos:

xmlhttp.open("GET","ajax_test.html",true);

O arquivo pode ser qualquer tipo de arquivo, como .txt e .xml, ou arquivos de script de servidor, como ASP e .php (antes de retornar uma resposta, para executar tarefas no servidor).


Asynchronous - Verdadeiro ou Falso?

AJAX significa JavaScript e XML assíncrono (Asynchronous JavaScript and XML).

Se você quiser usar AJAX XMLHttpRequest objeto, então, o parâmetro assíncrona cuja open () método deve ser definido como true:

xmlhttp.open("GET","ajax_test.html",true);

Para desenvolvedores web, envie uma solicitação assíncrona é um enorme passo em frente. No servidor para executar muitas tarefas são muito demorado. Antes AJAX ocorrer, o que pode fazer com que o aplicativo travar ou parar.

Através AJAX, JavaScript, sem esperar pela resposta do servidor, mas:

  • Outros scripts são executados enquanto aguarda a resposta do servidor
  • Quando a resposta está pronta para responder a processar

Async = true

Ao usar async = true, por favor disposições em resposta a eventos em onreadystatechange prontidão para executar uma função:

Exemplos

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

tente »

Você vai aprender mais sobre o conteúdo onreadystatechange em um capítulo posterior.


Async = false

Para usar o async = false, definir o método open () no terceiro parâmetro para false:

xmlhttp.open("GET","test1.txt",false);

Nós não recomendamos o uso assíncrono = false, mas por algum pequeno pedido, também é possível.

Lembre-se, JavaScript irá esperar até que a resposta do servidor está pronto para prosseguir. Se o servidor estiver ocupado ou lento, ou parar o aplicativo trava.

Nota: Quando você usa o async = false, por favor, não escreva onreadystatechange função - colocar o código para o send () de volta para a declaração:

Exemplos

xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

tente »