AJAX – interfejs do synchronicznych oraz asynchronicznych żądań HTTP

Standaryzacja implementacji obiektu XMLHttpRequest. Zapytania obsługuje się poprzez metodę globalną jQuery.post lub jQuery.get.

 

Właściwości żądania XHR.

 

XHR – XMLHttpRequest – obiekt języków skryptowych, do przesyłania żądań do serwera www poprzez protokół HTTP. Wykonywanie żądań po załadowaniu strony, na skutek interakcji użytkownika. Asynchronicznie wykonywane żądania odbywają się w tle dynamicznie zmieniając stronę. Treść odpowiedzi serwera najczęściej otrzymywana jest w formatach: XML, JSON, zwykły tekst.

 

Metody

  • abort() – anuluje aktualne żądanie
  • getAllResponseHeaders() – zwraca zestaw nagłówków HTTP jako łańcuch znaków
  • getResponseHeader( headerName ) – zwraca wartość wskazanego nagłówka HTTP
  • open( metoda, URL, async, userName, password ) lub open( metoda, URL ), wartości argumentów:
    • metoda –  „GET”, „POST”, „HEAD”, „PUT”, „DELETE”
    • url – relatywny lub bezwzględny adres
    • async – wskazanie czy żądanie ma być przetwarzane asynchronicznie,
      • 1(true) – tak, skrypt przetważany dalej po wykonaniu metody send()
      • 0(false) – nie, skrypt przetwarzany dalej po otrzymaniu odpowiedzi
  • send(zawartość) – wysyła żądanie
  • setRequestHeader( nazwaNagłówka, zawartośćNagłówka ) – odaje parę nagłówek/zawartość do żądań HTTP

 

Własności

  • onreadystatechange – wskazuje referencje do funkcji wykonywanej przy każdej zmianie własności readyState
  • responseText – zwraca dane odpowiedzi jako łańcuch tekstowy
  • responseXML – zwraca dane odpowiedzi jako dane HML, obiekt dokumentu XML, który może być parsowany poprzez klasy i interfejsy W3C DOM
  • status – zwraca numer statusu, kod odpowiedzi HTTP:
    • 200 – Success, OK
    • 301 – Moved permanently
    • 302 – Moved temporarily
    • 400 – Bad request
    • 401 – Unauthorized
    • 403 – Forbidden
    • 404 – Not found
    • 500 – Server error
  • statusText – zwraca status jako łańcuch tekstowy („ok”, „not found”)
  • readyState – wskazująca stan obiektu, wartości:
    • 0 – zapytania niezainicjowane, nowe żądania / Request not initialized
    • 1 – cel otwarty / Server connection stablished
    • 2 – zapytanie wysłane / Request received
    • 3 – odbieranie odpowiedzi / Processing request
    • 4 – żądanie zakończone / Request finished and response is ready

 

żądanie

ajaxreq = new XMLHttpRequest();

 

otwarcie url – dzięki metodzie open()

ajaxreq.open(„GET”,”myfile”);

ajaxreq.open(„GET”,”search.php?query=Aga”); – wysłanie wartości Aga jako parametr query

 

wysłanie żądania – metoda send()

wysłanie poprzez metoda POST – dane stanowią argumenty dla send()

wysłanie poprzez metodę GET – można użyć wartości pustej – ajaxreq.send(null);

 

wykrywanie zdarzenia – odpowiedzi poprzez funkcję onreadystatechange

ajaxreq.onreadystatechange = myFunction;

obiekt żądanie ma właściwości:

  • readyState – wskazująca stan przyjmującą wartości od 0 (nowe żądanie) do 4 (zakończone)
  • statusText – tekstowy opis błędu

 

otrzymanie danych zwróconych z serwera

właściwość readyState = 4 i żądanie zostaje ukończone, otrzymujemy dane dzięki właściwością:

  • responseText – odpowiedź w postaci tekstowej
  • responseXML – obiekt XML