AJAX-i tööpõhimõte detailselt:
- Sündmus (Event): Kasutaja teeb midagi lehel (klõpsab nuppu, sisestab teksti jne), mis käivitab JavaScripti funktsiooni.
- XMLHttpRequest objekt (XHR): See JavaScripti funktsioon loob
XMLHttpRequestobjekti ja saadab selle kaudu päringu serverile. Kuigi nimes on “XML”, võib see töödelda igat tüüpi andmeid (tänapäeval eelkõige JSON-it). - Serveri töötlus: Server saab päringu, töötleb seda (nt. loeb andmebaasist andmeid) ja saadab vastuse tagasi brauserile.
- Vastuse töötlus: Brauser (JavaScript) tuvastab, et serverilt on vastus saabunud. Seejärel parsib vastuse (nt. JSONi JavaScripti objektiks) ja uuendab DOM-i (Document Object Model), st. muudab lehe olemasolevat HTML-i, ilma seda uuesti laadimata.
H.6: API päring
Bacon API on naljakas ja kergekasutusega API, mis pakub erinevaid “bacon”-teemalisi andmeid ja pilte.
- Avage CodeSandbox → valige mall Static (et lihtsalt hostida index.html).

- Vali Official Templates alt static
- Kirjuta pildil olev kood index.html faili. Alustuseks kasuta HTML trafaretti (hüüumärk ja tab klahv).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Static Template</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<button type="button" onclick="loadDoc()">Request bacon</button>
<p id="demo"></p>
<script>
function loadDoc() {
const xhttp = new XMLHttpRequest();
xhttp.onload = function () {
document.getElementById("demo").innerHTML = this.responseText;
};
xhttp.open("GET", "https://baconipsum.com/api/?type=all-meat");
xhttp.send();
}
</script>
</body>
</html>

4. Salvesta (Ctrl+S) — CodeSandboxis salvestatakse tavaliselt automaatselt, kuid seda saab teha ka käsitsi.
5. Vajuta lehel nuppu — näed API vastust (tekst/JSON „bacon” kohta).
Kokkuvõte:
xhttp.open(“GET”, “url”) – avab uus HTTP päring
xhhtp.send() – saadab päringu serverisse
XMLHTTPrequest – AJAX päring mis saadab API aadressile päringu