AJAX sender en XMLHttpRequest til en server
AJAX (Asynchronous JavaScript and XML) er en teknologi, der giver mulighed for at sende anmodninger fra en webbrowser til en server og opdatere websiden dynamisk uden at skulle genindlæse hele siden. En vigtig del af AJAX er at sende en XMLHttpRequest til en server for at hente eller sende data.
Hvordan sender man en XMLHttpRequest med AJAX?
For at sende en XMLHttpRequest med AJAX skal man bruge JavaScripts XMLHttpRequest-objekt. Først skal man oprette en ny XMLHttpRequest ved at kalde XMLHttpRequest-konstruktøren:
var xhr = new XMLHttpRequest();
Efter at have oprettet XMLHttpRequest-objektet, kan man sætte metoden og URLen for anmodningen ved hjælp af open metoden. For eksempel kan man sende en POST-anmodning til en server:
xhr.open(POST, http://eksempel.com/api/data, true);
Når open metoden kaldes, specificeres der også om anmodningen skal være asynkron (true) eller synkron (false). Det anbefales normalt at gøre anmodninger asynkrone, så det ikke blokerer brugerens oplevelse af websiden.
Efter at have indstillet metoden og URLen for anmodningen, kan man tilføje eventuelle ekstra header-felter ved hjælp af setRequestHeader metoden:
xhr.setRequestHeader(Content-Type, application/json);
Herefter kan man sende anmodningen til serveren ved hjælp af send metoden. Hvis man vil sende data sammen med anmodningen, kan man angive det som parameter til send metoden. For eksempel kan man sende JSON-data:
var data = { name: John, age: 30 };xhr.send(JSON.stringify(data));
Yderligere oplysninger om XMLHttpRequest med AJAX
XMLHttpRequest-objektet giver også mulighed for at lytte efter forskellige begivenheder, der sker under anmodningsprocessen. For eksempel kan man lytte efter, når anmodningen er fuldført, ved hjælp af onreadystatechange begivenheden:
xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); }};
Her vil xhr.responseText indeholde svaret fra serveren, hvis anmodningen blev gennemført med succes.
Det er også muligt at anvende forskellige metoder for at håndtere eventuelle fejl i anmodningsprocessen. For eksempel kan man lytte efter fejl ved hjælp af onerror begivenheden:
xhr.onerror = function() { console.error(Der opstod en fejl under anmodningen.);};
Konklusion
At sende en XMLHttpRequest med AJAX er en kritisk teknik for at opnå dynamisk indhold på en webside uden at genindlæse hele siden. Ved at bruge JavaScripts XMLHttpRequest-objekt kan udviklere oprette og sende anmodninger til en server, samt håndtere svarene fra serveren på en asynkron og effektiv måde.
Ofte stillede spørgsmål
Hvad er AJAX og hvad bruges det til i forbindelse med at sende en XMLHttpRequest til en server?
Hvordan sender man en XMLHttpRequest ved hjælp af JavaScript?
Hvilke parametre kan man angive ved brug af metoden open() når man sender en XMLHttpRequest?
Hvad er forskellen mellem GET og POST requests når man sender en XMLHttpRequest?
Hvordan håndterer man responsen fra serveren efter at have sendt en XMLHttpRequest?
Hvad er readyState og hvilke værdier kan den have?
Hvilke status koder kan man bruge til at kontrollere om der opstod fejl under en XMLHttpRequest?
Hvordan sender man data ved brug af en POST request med en XMLHttpRequest?
Hvordan kan man sende en GET request med parametre ved hjælp af en XMLHttpRequest?
Kan man sende en XMLHttpRequest til en server på en anden domæne?
Andre populære artikler: jQuery Tutorial • Window parent Property • Python String rindex() Metode • onmouseout Event • Navigator onLine Property – Effektiv ejendomsadministration • XML DOM – Document object • Python Create Object • Java Wrapper Classes • HTML Global contenteditable Attribute • Python math.copysign() Metode • ASP VB Looping • ADO Recordset Object • XML Schema Eksempel • C Funktioner – Default Parameter Value (Valgfrie Parametre) • HTML DOM Input Radio Object • Probability • Storage Event • Pattern Recognition: En Dybdegående Artikel • HTML dialog-tagget • CSS rgb() funktion