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.send();
caminho | descrição |
---|---|
open(método, url, assíncrona) | Tipo especifica o pedido, URL e processamento se assíncrono de pedidos.
|
enviar(string) | Envia um pedido para o servidor.
|
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:
No exemplo acima, você pode obter os resultados em cache.
Para evitar isso, adicione um ID único para o URL:
Se você quiser enviar informações através do método GET, adicionar as informações para o URL:
solicitação POST
Um pedido POST simples:
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.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
tente »
方法 | 描述 |
---|---|
setRequestHeader(header,value) |
向请求添加 HTTP 头。
|
URL - arquivos no servidor
argumentourlopen () método é o endereço do servidor de arquivos:
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:
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
{
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.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
tente »