Krok 2 - "Voila`!", czyli obsługa odpowiedzi serwera
Pamiętasz, że w trakcie wysyłania zapytania została podana nazwa funkcji JavaScript, która została przygotowana do obsługi odpowiedzi?
http_request.onreadystatechange = nazwaFunkcji;
Zobaczmy, co ta funkcja powinna zrobić. Najpierw musi ona sprawdzić stan zapytania. Jeżeli status ma wartość 4, oznacza to, że udało się pobrać pełną odpowiedź z serwera i można kontynuować jej przetwarzanie.
if (http_request.readyState == 4) { // wszystko jest OK, odpowiedź została odebrana } else { // ciągle nie gotowe }
Możliwe są następujące wartości readyState:
- 0 (niezainicjowane)
- 1 (w trakcie pobierania)
- 2 (pobrano)
- 3 (interaktywne)
- 4 (gotowe)
(Źródło)
Następnie należy sprawdzić kod odpowiedzi serwera HTTP. Wszystkie możliwe kody są opisane na stronie W3C. W tym przypadku interesuje nas tylko odpowiedź
200 OK
if (http_request.status == 200) { // świetnie!! } else { // wystąpił jakiś problem z zapytaniem, // na przykład odpowiedzią mogło być 404 (Nie odnaleziono) // lub 500 (Wewnętrzny błąd serwera) }
Teraz, kiedy został już sprawdzony stan zapytania i kod statusu odpowiedzi, możesz zrobić co zechcesz z danymi otrzymanymi z serwera. Masz dwie możliwości dostania się do danych:
-
http_request.responseText
- zwróci odpowiedź serwera jako ciąg znakowy -
http_request.responseXML
- zwróci odpowiedź jako obiektXMLDocument
, z którym można pracować przy użyciu funkcji DOM JavaScriptu.