AJAX - wysłanie żądania do serwera
Obiekt XMLHttpRequest do wymiany danych z serwerem.
Wysyła żądanie do serwera
Aby wysłać żądanie do serwera, używamy otworzyć obiekt XMLHttpRequest jest () i send () Metoda:
xmlhttp.send();
sposób | opis |
---|---|
open(metoda, url, asynchroniczny) | Rodzaj wniosku, określa adres URL i czy asynchroniczne przetwarzanie żądań.
|
send(string) | Wysyła żądanie do serwera.
|
GET lub POST?
W porównaniu z POST, GET łatwiej i szybciej, a w większości przypadków mogą być użyte.
Jednak w następujących przypadkach, należy użyć żądania POST:
- Nie można korzystać z plików pamięci podręcznej (pliki lub zaktualizować bazę danych na serwerze)
- Wysyłanie dużych ilości danych (poczta nie ogranicza ilość danych) do serwera
- Po wysłaniu danych wprowadzanych przez użytkownika zawiera nieznane postacie, POST jest bardziej stabilny i bardziej niezawodny niż GET
żądania GET
Proste żądanie GET:
W powyższym przykładzie, można uzyskać buforowane wyniki.
Aby tego uniknąć, należy dodać unikatowy identyfikator do adresu URL:
Jeśli chcesz wysłać informacje za pomocą metody GET, dodaj informację do adresu URL:
Przykłady
xmlhttp.send();
Spróbuj »
żądanie POST
Prosty żądanie POST:
Jeśli trzeba, że dane jako HTML Formularz POST, należy setRequestHeader (), aby dodać nagłówki HTTP. Następnie określ, że chcesz wysłać dane w send () metodę:
Przykłady
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
Spróbuj »
方法 | 描述 |
---|---|
setRequestHeader(header,value) |
向请求添加 HTTP 头。
|
URL - pliki na serwerze
urlargumentem open () metoda jest adres serwera plików:
Plik może być dowolnego typu pliku, na przykład .txt i .xml lub skryptów serwerowych, takich jak .asp i .php (przed powrotem odpowiedź, do wykonywania zadań na serwerze).
Asynchroniczne - Prawda czy fałsz?
AJAX oznacza Asynchronous JavaScript and XML (Asynchronous JavaScript and XML).
Jeśli chcesz korzystać z obiektu XMLHttpRequest AJAX, a następnie parametr asynchroniczny, którego open () metoda ta musi być ustawiona na wartość true:
Dla programistów, wysyłać żądanie asynchroniczne jest ogromnym krokiem naprzód. Na serwerze do wykonania wiele zadań są bardzo czasochłonne. Przed AJAX wystąpić, co może spowodować, że aplikacja do zawieszenia lub zatrzymania.
Dzięki AJAX, JavaScript, nie czekając na odpowiedź serwera, ale:
- Inne skrypty wykonać podczas oczekiwania na odpowiedź serwera
- Gdy reakcja jest gotowy do odpowiedzi na przetwarzanie
Async = true
Podczas korzystania asynchronicznie = true, proszę przepisy w odpowiedzi na wydarzenia w onreadystatechange gotowość do wykonywania funkcji:
Przykłady
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
Spróbuj »
Dowiesz się więcej o zawartości onreadystatechange w późniejszym rozdziale.
Asynchroniczny = false
Aby korzystać z async = false ustawić otwartą metodę () w trzeciej parametru na false:
xmlhttp.open("GET","test1.txt",false);
Nie zaleca się używanie asynchronicznych = false, ale z jakiegoś małego wniosek, jest również możliwe.
Pamiętaj, JavaScript będzie czekać, aż odpowiedź serwera jest gotowy, aby kontynuować. Jeśli serwer jest zajęty lub wolny, lub zatrzymać zawieszeń.
Uwaga: W przypadku korzystania z asynchronicznie = false, proszę nie pisać onreadystatechange funkcji - umieścić kod do send () z powrotem do stwierdzenia:
Przykłady
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
Spróbuj »