{"id":45942,"date":"2022-10-18T08:54:52","date_gmt":"2022-10-18T07:54:52","guid":{"rendered":"https:\/\/kinqsta.com\/dk\/?p=45942&#038;post_type=knowledgebase&#038;preview_id=45942"},"modified":"2025-10-01T20:04:08","modified_gmt":"2025-10-01T19:04:08","slug":"javascript-http-anmodning","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/","title":{"rendered":"En vejledning i JavaScript HTTP-anmodninger"},"content":{"rendered":"<p>Interaktionen mellem <a href=\"https:\/\/kinqsta.com\/blog\/backend-vs-frontend\/\">frontend og backend<\/a> p\u00e5 websteder er muliggjort via HTTP-anmodninger. Funktioner som f.eks. at opdatere en ny\/gammel bruger i en database, udgive et blogindl\u00e6g fra dit <a href=\"https:\/\/kinqsta.com\/blog\/wordpress-admin\/\">WordPress-dashboard<\/a>, slette et billede fra din profil og opdatere din bio kr\u00e6ver alle en interaktion mellem en server og en klient for at \u00e6ndre data.<\/p>\n<p>N\u00e5r vi bygger webapplikationer &#8211; b\u00e5de frontend- og full stack-webapplikationer &#8211; interagerer vi ofte med data, der er gemt p\u00e5 forskellige databaser og servere. Disse servere kan tilh\u00f8re tredjeparter eller v\u00e6re oprettet af udviklerne af et projekt.<\/p>\n\n<p>For at interagere med disse servere kan vi g\u00f8re brug af forskellige HTTP-metoder til at anmode om data. Vi kan oprette, l\u00e6se, opdatere og slette (eller CRUD) data p\u00e5 servere ved hj\u00e6lp af dedikerede HTTP-verber som POST, GET, PUT\/PATCH og DELETE.<\/p>\n<p>I denne vejledning l\u00e6rer du de forskellige m\u00e5der, hvorp\u00e5 du kan lave HTTP-foresp\u00f8rgsler til fjernservere og udf\u00f8re CRUD-operationer <a href=\"https:\/\/kinqsta.com\/blog\/what-is-javascript\/\">i JavaScript<\/a>.<\/p>\n<p>Hvert afsnit vil introducere en ny metode til at sende HTTP-foresp\u00f8rgsler. Vi starter med de indbyggede metoder som f.eks. fetch API&#8217;et og XMLHttpRequest-objektet, f\u00f8r vi ser p\u00e5 nogle open source HTTP-anmodningsbiblioteker som Axios og SuperAgent.<\/p>\n<p>Lad os komme i gang!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Hvad er en JavaScript HTTP-anmodning?<\/h2>\n<p><a href=\"https:\/\/kinqsta.com\/blog\/what-is-an-http-request\/\">HTTP-anmodninger<\/a> i JavaScript er et s\u00e6t foruddefinerede metoder, der bruges til at interagere med data, der er gemt p\u00e5 servere.<\/p>\n<p>Hver anmodning, der sendes til en server, indeholder et slutpunkt og den type anmodning, der sendes. Du kan se et endpoint som en gateway mellem to programmer\u02d0 klienten og serveren.<\/p>\n<p>Klienten er det program, der sender en anmodning, mens serveren er det program, der modtager anmodningen. Serveren sender et svar tilbage, afh\u00e6ngigt af om anmodningen er gyldig. Hvis anmodningen er vellykket, sender serveren data tilbage i enten XML- eller JSON-format (JSON i de fleste tilf\u00e6lde), og hvis anmodningen mislykkes, sender serveren en <a href=\"https:\/\/kinqsta.com\/blog\/errors-in-javascript\/\">fejlmeddelelse<\/a> tilbage.<\/p>\n<p>De svar, som serveren sender tilbage, er normalt forbundet med <a href=\"https:\/\/kinqsta.com\/dk\/blog\/http-status-codes\/\">statuskoder<\/a>. Disse koder hj\u00e6lper os med at forst\u00e5, hvad serveren fors\u00f8ger at sige, n\u00e5r den modtager en anmodning. Her er nogle af dem, og hvad de betyder:<\/p>\n<ul>\n<li>100-199 angiver et oplysningssvar.<\/li>\n<li>200-299 angiver en vellykket anmodning.<\/li>\n<li>300-399 angiver omdirigering.<\/li>\n<li>400-499 angiver en klientfejl.<\/li>\n<li>500-599 angiver en <a href=\"https:\/\/kinqsta.com\/dk\/blog\/500-intern-serverfejl\/\">serverfejl<\/a>.<\/li>\n<\/ul>\n<p>Vi vil tale mere om nogle af dem i de f\u00f8lgende afsnit.<\/p>\n<p>I det n\u00e6ste afsnit ser du de forskellige m\u00e5der, du kan lave HTTP-anmodninger p\u00e5 i JavaScript.<\/p>\n<h2>S\u00e5dan laver du en HTTP-anmodning i JavaScript<\/h2>\n<p>Dette afsnit vil v\u00e6re opdelt i underafsnit, hvor du i hvert afsnit l\u00e6rer dig forskellige metoder, du kan bruge til at lave HTTP-anmodninger i JavaScript.<\/p>\n<p>Hver af de behandlede metoder vil have et eksempel, der viser, hvordan du sender POST-, GET-, PUT\/PATCH- og DELETE-anmodninger til servere.<\/p>\n<p><a href=\"https:\/\/jsonplaceholder.typicode.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">JSON Placeholder<\/a> vil fungere som fjernserver\/endpoint, hvor alle vores anmodninger vil blive sendt hen.<\/p>\n<p>Lad os dykke ned i det!<\/p>\n<h3>1. S\u00e5dan laver du en HTTP-anmodning i JavaScript ved hj\u00e6lp af XMLHttpRequest (AJAX)<\/h3>\n<p>XMLHttpRequest er et indbygget JavaScript-objekt, der bruges til at interagere med servere og indl\u00e6se indhold p\u00e5 websider uden at genindl\u00e6se browseren.<\/p>\n<p>I dette afsnit kan du se, hvordan du sender POST-, GET-, PUT\/PATCH- og DELETE-anmodninger ved hj\u00e6lp af XMLHttpRequest.<\/p>\n<p>AJAX bruges til at foretage asynkrone HTTP-anmodninger. Det betyder ganske enkelt, at mens et svar fra en anmodning er ventende, kan andre dele af din JavaScript-kode forts\u00e6tte med at k\u00f8re uden at vente p\u00e5, at anmodningen f\u00f8rst er f\u00e6rdig.<\/p>\n<p>Du kan ogs\u00e5 skubbe \u00e6ndringer til et bestemt afsnit af din webside uden at tvinge den bes\u00f8gende til at genindl\u00e6se hele siden ved hj\u00e6lp af AJAX.<\/p>\n<p>AJAX arbejder som standard med XMLHttpRequest-objektet, s\u00e5 eksemplerne i dette afsnit kan betragtes som AJAX-anmodninger.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Oprindeligt kunne du angive, om en anmodning skulle v\u00e6re asynkron eller ej, ved at bruge en <code>true<\/code> (asynkron) og <code>false<\/code> parameter i din anmodning, men sidstn\u00e6vnte er nu for\u00e6ldet.<\/p>\n<\/aside>\n\n<h4>S\u00e5dan sender du en GET Request i JavaScript ved hj\u00e6lp af XMLHttpRequest<\/h4>\n<p>Du g\u00f8r brug af GET-anmodningen, n\u00e5r du \u00f8nsker at hente data fra en server. Hvis du vil sende en vellykket GET-anmodning ved hj\u00e6lp af XMLHttpRequest i JavaScript, skal du sikre dig, at f\u00f8lgende er gjort korrekt:<\/p>\n<ol>\n<li>Opret et nyt XMLHttpRequest-objekt.<\/li>\n<li>\u00c5bn en forbindelse ved at angive anmodningstype og slutpunkt (serverens URL).<\/li>\n<li>Send anmodningen.<\/li>\n<li>Lyt efter serverens svar.<\/li>\n<\/ol>\n<p>Nu hvor vi har set nogle af de trin, der er involveret i at sende en POST-anmodning ved hj\u00e6lp af XMLHttpRequest, kan vi se et kodeeksempel\u02d0<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();\nxhr.open(\"GET\", \"https:\/\/jsonplaceholder.typicode.com\/users\");\nxhr.send();\nxhr.responseType = \"json\";\nxhr.onload = () =&gt; {\n  if (xhr.readyState == 4 && xhr.status == 200) {\n    const data = xhr.response;\n    console.log(data);\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};<\/code><\/pre>\n<p>Vi vil bryde koden ovenfor ned for at hj\u00e6lpe dig med at forst\u00e5, hvad der sker her.<\/p>\n<p>Den f\u00f8rste ting vi gjorde var at oprette et nyt XMLHttpRequest-objekt og gemme det i en variabel kaldet <code>xhr<\/code>. Det vil sige:<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();<\/code><\/pre>\n<p>Vi angav derefter anmodningstypen (GET) og det slutpunkt, hvor anmodningen skal sendes til (i dette tilf\u00e6lde &#8220;<a href=\"https:\/\/jsonplaceholder.typicode.com\/users\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/jsonplaceholder.typicode.com\/users<\/a>&#8220;)\u02d0<\/p>\n<pre><code class=\"language-js\">xhr.open(\"GET\", \"https:\/\/jsonplaceholder.typicode.com\/users\");<\/code><\/pre>\n<p>For at sende anmodningen til serveren brugte vi metoden <code> send()<\/code>.<\/p>\n<p>N\u00e5r serveren sender data tilbage, kan du angive det format, som dataene returneres i.<\/p>\n<p>I de fleste tilf\u00e6lde anvendes JSON. S\u00e5 vi s\u00f8rgede for at vores data blev returneret i JSON ved at tilf\u00f8je dette:<\/p>\n<pre><code class=\"language-js\">xhr.responseType = \"json\";<\/code><\/pre>\n<p>P\u00e5 dette tidspunkt har vi med succes sendt en GET-foresp\u00f8rgsel. Det n\u00e6ste vi skal g\u00f8re er at lytte til, hvad serveren siger, ved hj\u00e6lp af en event listener:<\/p>\n<pre><code class=\"language-js\">xhr.onload = () =&gt; {\n  if (xhr.readyState == 4 && xhr.status == 200) {\n    const data = xhr.response;\n    console.log(data);\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};<\/code><\/pre>\n<p>I koden ovenfor g\u00f8r vi brug af <code>onload<\/code> event listener. Ved hj\u00e6lp af en <code>if<\/code>-anvisning kontrollerede vi status for serverens svar.<\/p>\n<p>Hvis klientens status er 4 (DONE), og hvis statuskoden er 200 (succesfuld), logges dataene til konsollen. I modsat fald vises en fejlmeddelelse med fejlstatus.<\/p>\n<p>Hvis du har fulgt med indtil dette punkt uden fejl, b\u00f8r du have et array af objekter i din konsol\u02d0<\/p>\n<pre><code class=\"language-js\">[{\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}]<\/code><\/pre>\n<p>Dette er de data, der er hentet fra serveren.<\/p>\n<h4>S\u00e5dan Send en POST Request i JavaScript Brug XMLHttpRequest<\/h4>\n<p>Med POST-anmodningen kan du sende nye oplysninger (data) til serveren\/databasen som et objekt. Objektet kan v\u00e6re oplysninger om en ny bruger, en ny post p\u00e5 en to-do-liste, eller hvad du ellers har brug for at logge.<\/p>\n<p>Det kodeeksempel, du vil se i dette afsnit, ligner det i sidste afsnit. Den v\u00e6sentligste forskel er, at POST-anmodninger kr\u00e6ver nogle oplysninger, som normalt gemmes i et objekt, f\u00f8r de sendes til serveren.<\/p>\n<p>Her er et eksempel:<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();\nxhr.open(\"POST\", \"https:\/\/jsonplaceholder.typicode.com\/posts\");\nxhr.setRequestHeader(\"Content-Type\", \"application\/x-www-form-urlencoded\");\nconst body = JSON.stringify({\n  title: \"Hello World\",\n  body: \"My POST request\",\n  userId: 900,\n});\nxhr.onload = () =&gt; {\n  if (xhr.readyState == 4 && xhr.status == 201) {\n    console.log(JSON.parse(xhr.responseText));\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};\nxhr.send(body);<\/code><\/pre>\n<p>I koden ovenfor gemmes de oplysninger, der skal sendes til serveren, i en variabel kaldet <code>body<\/code>. Den indeholder tre egenskaber\u02d0 <code>title<\/code>, <code>body<\/code>, og <code>userId<\/code>.<\/p>\n<p>Bem\u00e6rk, at variablen <code>body<\/code>, som indeholder objektet, skal konverteres til et JSON-objekt, f\u00f8r det sendes til serveren. Konverteringen foretages ved hj\u00e6lp af metoden <code>JSON.stringify()<\/code>.<\/p>\n<p>For at sikre, at JSON-objektet sendes til serveren, overf\u00f8res det som en parameter til metoden <code>send()<\/code>:<\/p>\n<pre><code class=\"language-js\">xhr.send(body);<\/code><\/pre>\n<h4>S\u00e5dan sendes en PATCH Request i JavaScript ved hj\u00e6lp af XMLHttpRequest<\/h4>\n<p>PATCH-anmodningen bruges til at opdatere angivne egenskaber for et objekt. Dette er forskelligt fra PUT-metoden, som opdaterer hele objektet.<\/p>\n<p>Her er et eksempel p\u00e5 en PATCH-anmodning ved hj\u00e6lp af XMLHttpRequest i JavaScript:<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();\nxhr.open(\"PATCH\", \"https:\/\/jsonplaceholder.typicode.com\/posts\/101\");\nxhr.setRequestHeader(\"Content-type\", \"application\/json; charset=utf-8\");\nconst body = JSON.stringify({\n  body: \"My PATCH request\",\n});\nxhr.onload = () =&gt; {\n  var data = JSON.parse(xhr.responseText);\n  if (xhr.readyState == 4 && xhr.status == \"200\") {\n    console.log(data);\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};\nxhr.send(body);<\/code><\/pre>\n<p>Ovenst\u00e5ende kode vil, hvis den lykkes, logge den del af objektet, der blev opdateret og sendt til serveren.<\/p>\n<h4>S\u00e5dan sendes en DELETE Request i JavaScript ved hj\u00e6lp af XMLHttpRequest<\/h4>\n<p>Ligesom navnet antyder, bruges DELETE-metoden til at slette data fra en server. Dette er det samme for alle JavaScript HTTP-metoder.<\/p>\n<p>I de fleste tilf\u00e6lde skal du angive ID&#8217;et for de data, du vil slette. ID&#8217;et er normalt en parameter i endpointet\/URL&#8217;en.<\/p>\n<p>Lad os se et eksempel p\u00e5 en DELETE-anmodning\u02d0<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();\nxhr.open(\"DELETE\", \"https:\/\/jsonplaceholder.typicode.com\/posts\/3\");\nxhr.onload = function () {\n  var data = JSON.parse(xhr.responseText);\n  if (xhr.readyState == 4 && xhr.status == \"200\") {\n    console.log(data);\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};\nxhr.send();<\/code><\/pre>\n<p>Koden ovenfor sletter et objekt med et indl\u00e6g med ID 3 som angivet i endpointet (&#8220;<a href=\"https:\/\/jsonplaceholder.typicode.com\/posts\/3\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/jsonplaceholder.typicode.com\/posts\/3<\/a>&#8220;).<\/p>\n<h3>2. Hvordan man laver en HTTP Request i JavaScript Brug jQuery<\/h3>\n<p>jQuery forenkler processen med at hente data fra servere ved at g\u00f8re syntaksen kortere og mere ligetil.<\/p>\n<p>I dette afsnit vil du se, hvordan du laver <a href=\"https:\/\/kinqsta.com\/dk\/blog\/http3\/\">HTTP-foresp\u00f8rgsler<\/a> ved hj\u00e6lp af forskellige jQuery-metoder.<\/p>\n<h4>S\u00e5dan sendes en GET Request i JavaScript ved hj\u00e6lp af jQuery<\/h4>\n<p>jQuery giver os metoden <code>$.get()<\/code> til at sende GET-foresp\u00f8rgsler til servere. Metoden tager to parametre ind &#8211; URL&#8217;en til serveren og en callback-funktion, som k\u00f8rer, hvis anmodningen lykkes.<\/p>\n<p>Her er et eksempel:<\/p>\n<pre><code class=\"language-js\">$.get(\"https:\/\/jsonplaceholder.typicode.com\/users\", (data, status) =&gt; {\n  console.log(data);\n});<\/code><\/pre>\n<p>Som det fremg\u00e5r af koden ovenfor, har <code>$.get()<\/code>-metoden modtaget URL&#8217;en (<a href=\"https:\/\/jsonplaceholder.typicode.com\/users\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/jsonplaceholder.typicode.com\/users<\/a>) og en anonym callback-funktion som parametre.<\/p>\n<p>Via callback-funktionen kan du f\u00e5 adgang til dataene fra anmodningen og status for anmodningen. I vores eget tilf\u00e6lde loggede vi dataene til konsollen.<\/p>\n<p>S\u00e5 enkelt er det at sende en GET-anmodninger ved hj\u00e6lp af jQuery.<\/p>\n<h4>S\u00e5dan sender du en POST Request i JavaScript ved hj\u00e6lp af jQuery<\/h4>\n<p>For at sende en POST-anmodning ved hj\u00e6lp af jQuery bruger vi metoden <code>$.post()<\/code>. Den tager tre parametre &#8211; URL&#8217;en, de data, der skal sendes til serveren, og en callback-funktion.<\/p>\n<pre><code class=\"language-js\">const body = JSON.stringify({\n  title: \"Hello World\",\n  body: \"My POST request\",\n  userId: 900,\n});\n$.post(\"https:\/\/jsonplaceholder.typicode.com\/users\", body, (data, status) =&gt; {\n  console.log(data);\n});<\/code><\/pre>\n<p>I koden ovenfor har vi oprettet et objekt, der skal sendes til serveren, og gemt det i en variabel kaldet <code>body<\/code>. Denne variabel blev overf\u00f8rt som anden parameter i metoden <code>$.post()<\/code>.<\/p>\n<p>Ved hj\u00e6lp af callback-funktionen loggede vi resultatet af anmodningen til konsollen.<\/p>\n<h3>3. Hvordan man laver asynkrone anmodninger i jQuery Brug $.ajax() metode<\/h3>\n<p>F\u00f8r vi g\u00e5r videre til at sende PATCH- og DELETE-foresp\u00f8rgsler, skal vi tale om metoden <code>$.ajax()<\/code>.<\/p>\n<p>Metoden <code>$.ajax()<\/code> i jQuery bruges til at foretage asynkrone anmodninger.<\/p>\n<p>Syntaksen er anderledes end de andre.<\/p>\n<p>Her er hvordan du laver en GET-anmodninger ved hj\u00e6lp af metoden <code>$.ajax()<\/code>:<\/p>\n<pre><code class=\"language-js\">$.ajax({\n  url: \"https:\/\/jsonplaceholder.typicode.com\/users\",\n  type: \"GET\",\n  success: function (result) {\n    console.log(result);\n  },\n});<\/code><\/pre>\n<p>Metoden <code>$.ajax()<\/code> har forskellige parametre, som vi kan bruge.<\/p>\n<p>I koden ovenfor angiver <code>url<\/code>-parameteren URL&#8217;en til serveren, <code>type<\/code> angiver anmodningstypen, og <code>success<\/code>-parameteren kalder en callback-funktion, hvis anmodningen er vellykket.<\/p>\n<p>I n\u00e6ste afsnit vil du se, hvordan du kan sende PATCH- og DELETE-anmodninger ved hj\u00e6lp af jQuerys <code>$.ajax()<\/code>-metode.<\/p>\n<h4>S\u00e5dan sendes en PATCH-anmodning i JavaScript ved hj\u00e6lp af jQuerys $.ajax()-metode<\/h4>\n<p>I dette afsnit kan du se, hvordan du sender PATCH-foresp\u00f8rgsler ved hj\u00e6lp af jQuerys <code>$.ajax()<\/code>-metode.<\/p>\n<p>Her er koden:<\/p>\n<pre><code class=\"language-js\">const body = JSON.stringify({\n  body: \"My PATCH request\",\n});\n$.ajax({\n  url: \"https:\/\/jsonplaceholder.typicode.com\/posts\/101\",\n  type: \"PATCH\",\n  data: body,\n  success: function (result) {\n    console.log(result);\n  },\n});<\/code><\/pre>\n<p>I ovenst\u00e5ende kode er den egenskab, der skal opdateres, gemt i variablen <code>body<\/code>. Denne bruges derefter som v\u00e6rdi for parameteren <code>data<\/code>.<\/p>\n<p>Hvis anmodningen er vellykket, udf\u00f8res funktionen for parameteren <code>success<\/code>.<\/p>\n<h4>S\u00e5dan sendes en DELETE Request i JavaScript ved hj\u00e6lp af jQuery&#8217;s $.ajax() Metode<\/h4>\n<p>Afsendelse af en DELETE-anmodning ved hj\u00e6lp af jQuerys <code>$.ajax()<\/code>-metode kr\u00e6ver kun nogle f\u00e5 linjer kode.<\/p>\n<p>Her er et eksempel:<\/p>\n<pre><code class=\"language-js\">$.ajax({\n  url: \"https:\/\/jsonplaceholder.typicode.com\/posts\/3\",\n  type: \"DELETE\",\n  success: function (result) {\n    console.log(result)\n  },\n});<\/code><\/pre>\n<p>Som det fremg\u00e5r ovenfor, var det eneste, vi skulle g\u00f8re, at angive URL&#8217;en med ID&#8217;et for det objekt, der skal slettes, typen af anmodning og en funktion, der k\u00f8rer, hvis anmodningen lykkes.<\/p>\n<h4>S\u00e5dan bruges $.getJSON-metoden i jQuery<\/h4>\n<p>Metoden <code>$.getJSON<\/code> giver en kortere m\u00e5de at sende GET-anmodning p\u00e5.<\/p>\n<p>For at foretage en vellykket anmodning skal du blot angive URL&#8217;en og callback-funktionen. Her er et eksempel:<\/p>\n<pre><code class=\"language-js\">$.getJSON(\"https:\/\/jsonplaceholder.typicode.com\/users\", function (result) {\n  console.log(result)\n});<\/code><\/pre>\n<p>I koden ovenfor har vi som parametre til metoden <code>$.getJSON<\/code> angivet URL&#8217;en til serveren og den funktion, der k\u00f8rer, n\u00e5r anmodningen lykkes, som parametre til metoden .<\/p>\n<p>Koden ovenfor logger et array af objekter med brugeroplysninger til konsollen.<\/p>\n<h3>4. S\u00e5dan laver du en HTTP-anmodning i JavaScript ved hj\u00e6lp af Fetch API&#8217;et<\/h3>\n<p><code>fetch<\/code> API&#8217;et er en af de mest popul\u00e6re m\u00e5der at interagere med servere p\u00e5 ved hj\u00e6lp af JavaScript. Det er en indf\u00f8dt JavaScript API, som har underst\u00f8ttelse af l\u00f8fter, mens der foretages anmodninger.<\/p>\n<p>Syntaksen for brug af <code>fetch<\/code> API&#8217;et er meget let at forst\u00e5, som du vil se i de f\u00f8lgende afsnit.<\/p>\n<h4>S\u00e5dan sender du en GET-anmodning i JavaScript ved hj\u00e6lp af Fetch API&#8217;et<\/h4>\n<p>Afsendelse af en GET-anmodning ved hj\u00e6lp af <code>fetch<\/code> API&#8217;et kr\u00e6ver kun URL&#8217;en. Dette returnerer derefter et l\u00f8fte, som du kan f\u00e5 adgang til ved hj\u00e6lp af metoden <code>then()<\/code> eller n\u00f8gleordene <code>async<\/code> og <code>await<\/code>.<\/p>\n<p>Lad os se p\u00e5 et eksempel:<\/p>\n<pre><code class=\"language-js\">fetch(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n.then((response) =&gt; response.json())\n.then((json) =&gt; console.log(json));<\/code><\/pre>\n<p>I koden ovenfor har vi sendt URL&#8217;en til metoden <code>fetch<\/code>; denne returnerer et l\u00f8fte. Derefter fik vi adgang til serverens svar ved hj\u00e6lp af metoden <code>then()<\/code>. Svaret blev konverteret til et JSON-objekt ved hj\u00e6lp af metoden <code>response.json()<\/code>.<\/p>\n<p>Efter at have modtaget svaret brugte vi derefter en anden <code>then()<\/code>-metode til at logge dataene ud til konsollen.<\/p>\n<h4>S\u00e5dan sender du en POST-foresp\u00f8rgsel i JavaScript ved hj\u00e6lp af Fetch API&#8217;et<\/h4>\n<p>Fetch-metoden har en anden parameter, som giver os mulighed for at angive body (data, der skal sendes) og typen af den anmodning, der skal sendes. Med denne anden parameter kan vi sende POST- og PATCH-anmodninger.<\/p>\n<p>Tag et kig p\u00e5 denne pr\u00f8vekode:<\/p>\n<pre><code class=\"language-js\">fetch(\"https:\/\/jsonplaceholder.typicode.com\/posts\", {\n  method: \"POST\",\n  body: JSON.stringify({\n    title: \"Hello World\",\n    body: \"My POST request\",\n    userId: 900,\n  }),\n  headers: {\n    \"Content-type\": \"application\/json; charset=UTF-8\",\n  },\n})\n.then((response) =&gt; response.json())\n.then((json) =&gt; console.log(json));<\/code><\/pre>\n<p>I koden ovenfor tilf\u00f8jede vi anmodningsindstillinger i <code>fetch<\/code>-metodens anden parameter. <code>method<\/code> blev brugt til at angive anmodningstypen, <code>body<\/code> angav de data, der skulle sendes til serveren, og <code>headers<\/code> blev brugt til at angive, at vi ville sende JSON-data til serveren.<\/p>\n<p>Som vi gjorde f\u00f8r, da vi sendte en GET-anmodning, fik vi adgang til det returnerede l\u00f8fte\/svar ved hj\u00e6lp af <code>then()<\/code>-metoden.<\/p>\n<h4>S\u00e5dan sender du en PUT-anmodning i JavaScript ved hj\u00e6lp af Fetch API&#8217;et<\/h4>\n<p>I andre afsnit, hvor vi sendte en anmodning om at opdatere et objekt i serveren, gjorde vi brug af PATCH. I dette afsnit bruger vi PUT, som giver dig mulighed for at opdatere et objekt i sin helhed.<\/p>\n<p>Her er et eksempel med <code>fetch<\/code> API&#8217;et:<\/p>\n<pre><code class=\"language-js\">fetch(\"https:\/\/jsonplaceholder.typicode.com\/posts\/1\", {\n  method: \"PUT\",\n  body: JSON.stringify({\n    id: 1,\n    title: \"My PUT request\",\n    body: \"Updating the entire object\",\n    userId: 1,\n  }),\n  headers: {\n    \"Content-type\": \"application\/json; charset=UTF-8\",\n  },\n})\n.then((response) =&gt; response.json())\n.then((json) =&gt; console.log(json));<\/code><\/pre>\n<p>Da vi sender en PUT-anmodning, skal vi angive de data, der skal opdateres, som bliver overf\u00f8rt som en v\u00e6rdi til <code>body<\/code>-anmodningsindstillingen.<\/p>\n<p>Vi har ogs\u00e5 angivet ID&#8217;et for det objekt, der skal opdateres, som den sidste parameter i URL&#8217;en. Hvis anmodningen k\u00f8rer med succes, b\u00f8r du se det opdaterede objekt blive logget p\u00e5 konsollen.<\/p>\n<h4>S\u00e5dan sender du en DELETE-anmodning i JavaScript ved hj\u00e6lp af Fetch API&#8217;et<\/h4>\n<p>Det er ret ligetil at sende en DELETE-anmodning &#8211; det eneste, du skal g\u00f8re, er at angive ID&#8217;et for det objekt, der skal slettes. Du kan bruge metoden <code>then()<\/code> til at modtage svaret fra serveren, ligesom vi gjorde med de andre anmodninger.<\/p>\n<p>Her er et hurtigt eksempel:<\/p>\n<pre><code class=\"language-js\">fetch(\"https:\/\/jsonplaceholder.typicode.com\/posts\/3\", {\n  method: \"DELETE\",\n});<\/code><\/pre>\n<p>Ovenst\u00e5ende kode sletter et objekt med ID 3.<\/p>\n<h3>5. Hvordan man laver en HTTP Request i JavaScript Brug Axios<\/h3>\n<p>Axios er et tredjepartsbibliotek baseret p\u00e5 l\u00f8fter til at sende HTTP-anmodning. Ligesom de fleste moderne HTTP-klienter forenkler det processen med at sende anmodninger til en server.<\/p>\n<p>I dette afsnit l\u00e6rer du, hvordan du sender GET-, POST-, PUT- og DELETE-anmodninger til en server ved hj\u00e6lp af Axios.<\/p>\n<p>Bem\u00e6rk, at Axios ikke er indbygget i JavaScript &#8211; du skal installere det separat for at kunne bruge dets funktionalitet. Hvis du vil installere Axios i dit projekt, skal du k\u00f8re nedenst\u00e5ende kommando i din <a href=\"https:\/\/kinqsta.com\/blog\/what-is-npm\/\">projektterminal<\/a>:<\/p>\n<pre><code class=\"language-js\">npm install axios<\/code><\/pre>\n<h4>S\u00e5dan sender du en GET-anmodning i JavaScript ved hj\u00e6lp af Axios<\/h4>\n<p>For at sende en GET-anmodning ved hj\u00e6lp af Axios skal du blot sende URL&#8217;en til metoden <code>get()<\/code>, som returnerer et l\u00f8fte. Svaret, der returneres fra l\u00f8ftet, kan tilg\u00e5s ved hj\u00e6lp af metoden <code>then()<\/code>.<\/p>\n<p>Lad os se et eksempel:<\/p>\n<pre><code class=\"language-js\">axios.get(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n.then((response) =&gt; console.log(response.data))\n.catch((error) =&gt; console.log(error));<\/code><\/pre>\n<p>Ovenst\u00e5ende kode vil logge et array af objekter ud, der indeholder data, der returneres fra serveren. Du vil bem\u00e6rke, at vi ikke beh\u00f8vede at \u00e6ndre de returnerede objekter til JSON-objekter &#8211; Axios h\u00e5ndterer dette under motorhjelmen, og du kan f\u00e5 adgang til dataene ved hj\u00e6lp af <code>response.data<\/code>.<\/p>\n<p>For at fange eventuelle fejl brugte vi metoden <code>catch()<\/code>.<\/p>\n<h4>S\u00e5dan sender du en POST Request i JavaScript ved hj\u00e6lp af Axios<\/h4>\n<p>POST-anmodningen i Axios tager to parametre &#8211; URL&#8217;en og de data, der skal sendes til serveren. Du kan gemme dataene i en variabel eller sende dem direkte som en parameter.<\/p>\n<p>Her er hvordan:<\/p>\n<pre><code class=\"language-js\">axios.post(\"https:\/\/jsonplaceholder.typicode.com\/posts\", {\n  title: \"POST request with Axios\",\n  body: \"POST request\",\n  userId: 10,\n})\n.then(function (response) {\n  console.log(response.data);\n})\n.then((error) =&gt; console.log(error))<\/code><\/pre>\n<p>I eksemplet ovenfor sender vi data til serveren. Dataene sendes som en anden parameter til metoden <code>post()<\/code>.<\/p>\n<p>Hvis anmodningen sendes med succes, vil resultatet blive logget p\u00e5 konsollen.<\/p>\n<h4>S\u00e5dan sendes en PUT Request i JavaScript ved hj\u00e6lp af Axios<\/h4>\n<p>At sende en PUT-anmodning med Axios svarer til at sende en POST-anmodning. Hvis du vil sende en PUT-anmodning, skal du angive URL-adressen (herunder ID&#8217;et for det objekt, der skal opdateres) og de data, der skal opdateres, som en anden parameter i metoden <code>put()<\/code>.<\/p>\n<p>I eksemplet nedenfor opdateres et objekt med ID 10:<\/p>\n<pre><code class=\"language-js\">axios.put(\"https:\/\/jsonplaceholder.typicode.com\/posts\/10\", {\n  title: \"PUT request with Axios\",\n  body: \"PUT request\",\n  userId: 10,\n})\n.then(function (response) {\n  console.log(response.data);\n})\n.then((error) =&gt; console.log(error))<\/code><\/pre>\n<h4>S\u00e5dan sendes en DELETE-anmodning i JavaScript med Axios<\/h4>\n<p>Hvis du vil sende en DELETE-anmodning, skal du angive ID&#8217;et for det objekt, der skal slettes, i URL&#8217;en.<\/p>\n<p>Som s\u00e6dvanlig skal du angive URL&#8217;en sammen med ID&#8217;et for det objekt, der skal slettes.<\/p>\n<p>Her er et eksempel:<\/p>\n<pre><code class=\"language-js\">axios.delete(\"https:\/\/jsonplaceholder.typicode.com\/posts\/10\")\n.then(function (response) {\n  console.log(response);\n})\n.then((error) =&gt; console.log(error))<\/code><\/pre>\n<h3>6. S\u00e5dan laver du en HTTP-anmodning i JavaScript ved hj\u00e6lp af SuperAgent<\/h3>\n<p>SuperAgent er et af de \u00e6ldste biblioteker, der er bygget til at lave HTTP-anmodninger i JavaScript. Ligesom Axios underst\u00f8tter det promises og har forudindbyggede metoder til at sende forskellige HTTP-anmodninger til servere.<\/p>\n<p>Hvis du vil bruge SuperAgent, skal du installere det ved hj\u00e6lp af nedenst\u00e5ende kommando:<\/p>\n<pre><code class=\"language-js\">npm install superagent<\/code><\/pre>\n<p>Vi starter med et eksempel p\u00e5 en GET-anmodning.<\/p>\n<h4>S\u00e5dan sender du en GET-anmodning i JavaScript ved hj\u00e6lp af SuperAgent<\/h4>\n<p>SuperAgent giver os en <code>get()<\/code>-metode til at sende GET-anmodninger. URL&#8217;en sendes ind som metodens parameter.<\/p>\n<p>Det l\u00f8fte, der returneres fra anmodningen, kan derefter vurderes ved hj\u00e6lp af <code>end()<\/code>-metoden, som det ses i dette eksempel:<\/p>\n<pre><code class=\"language-js\">superagent\n.get(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n.end((error, response) =&gt; {\n  console.log(response.body);\n});<\/code><\/pre>\n<h4>S\u00e5dan sender du en POST-anmodning i JavaScript ved hj\u00e6lp af SuperAgent<\/h4>\n<p>N\u00e5r du sender en POST-anmodning ved hj\u00e6lp af SuperAgent, indsender du de data, der skal sendes til serveren, som en parameter til SuperAgents <code>send()<\/code>-metode:<\/p>\n<pre><code class=\"language-js\">superagent\n.post(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n.send({\n  title: \"POST request with SuperAgent\",\n  body: \"POST request\",\n  userId: 10,\n})\n.set(\"X-API-Key\", \"foobar\")\n.set(\"accept\", \"json\")\n.end((err, res) =&gt; {\n  console.log(res.body);\n});<\/code><\/pre>\n<p>I koden ovenfor blev URL&#8217;en sendt ind som parameter for <code>post()<\/code>-metoden. De data, der skal sendes, blev indsendt til <code>send()<\/code>-metoden. Ved hj\u00e6lp af metoden <code>end()<\/code> fik vi resultatet af serverens svar.<\/p>\n<h4>S\u00e5dan sender du en PUT Request i JavaScript ved hj\u00e6lp af SuperAgent<\/h4>\n<p>Du kan sende en PUT-anmodning i SuperAgent ved hj\u00e6lp af metoden <code>put()<\/code>. Ligesom i eksemplet i sidste afsnit vil de data, der skal opdateres, blive sendt som en parameter til <code>send()<\/code>-metoden.<\/p>\n<p>Her er et eksempel:<\/p>\n<pre><code class=\"language-js\">superagent\n.put(\"https:\/\/jsonplaceholder.typicode.com\/posts\/10\")\n.send({\n  title: \"PUT request with SuperAgent\",\n  body: \"PUT request\",\n  userId: 10,\n})\n.set(\"X-API-Key\", \"foobar\")\n.set(\"accept\", \"json\")\n.end((err, res) =&gt; {\n  console.log(res.body);\n});<\/code><\/pre>\n<h4>S\u00e5dan sender du en DELETE Request i JavaScript ved hj\u00e6lp af SuperAgent<\/h4>\n<p>Hvis du vil sende en sletteanmodning, skal du blot angive ID&#8217;et for det objekt, der skal slettes, i URL&#8217;en. Dette vil blive brugt som en parameter i metoden <code>delete()<\/code>.<\/p>\n<pre><code class=\"language-js\">superagent\n.delete(\"https:\/\/jsonplaceholder.typicode.com\/posts\/10\")\n.end((err, res) =&gt; {\n  console.log(res.body);\n});<\/code><\/pre>\n<h3>7. S\u00e5dan laver du en HTTP-anmodning i JavaScript ved hj\u00e6lp af Qwest<\/h3>\n<p>Qwest er et AJAX-bibliotek til at interagere med servere. Det er i \u00f8jeblikket arkiveret p\u00e5 <a href=\"https:\/\/kinqsta.com\/blog\/what-is-github\/\">GitHub<\/a> &#8211; ophavsmanden oph\u00f8rte med at vedligeholde biblioteket, da <code>fetch<\/code> API og Axios blev udviklet.<\/p>\n<p>Qwest underst\u00f8tter ogs\u00e5 brugen af promises.<\/p>\n<p>I de f\u00f8lgende underafsnit vil du se, hvordan du kan sende GET-, POST-, PUT- og DELETE-anmodninger ved hj\u00e6lp af Qwest.<\/p>\n<h4>S\u00e5dan sendes en GET-anmodning i JavaScript ved hj\u00e6lp af Qwest<\/h4>\n<p>Qwest har en <code>get()<\/code>-metode, der kan bruges til at sende GET-anmodninger. Her er hvordan du bruger den:<\/p>\n<pre><code class=\"language-js\">qwest.get(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n\n.then((xhr, response) =&gt; console.log(response));<\/code><\/pre>\n<h4>S\u00e5dan sender du en POST Request i JavaScript ved hj\u00e6lp af Qwest<\/h4>\n<p>Som en anden parameter sendes de data, der skal sendes til en server, til <code>post()<\/code>-metoden. Den f\u00f8rste parameter er URL&#8217;en.<\/p>\n<p>Her er et eksempel:<\/p>\n<pre><code class=\"language-js\">qwest.post(\"https:\/\/jsonplaceholder.typicode.com\/posts\", {\n  title: 'POST request with Qwest',\n  body: 'POST request',\n  userId: 30\n})\n.then(function(xhr, response) {\n  console.log(response)\n})\n.catch(function(e, xhr, response) {\n  console.log(e)\n});<\/code><\/pre>\n<h4>S\u00e5dan sender du en PUT Request i JavaScript ved hj\u00e6lp af Qwest<\/h4>\n<p>Syntaksen her er den samme som den i det foreg\u00e5ende afsnit. Det eneste, du skal \u00e6ndre, er anmodningstypen og derefter angive ID&#8217;et for det objekt, der skal opdateres, sammen med de data, du \u00f8nsker at opdatere objektet med.<\/p>\n<p>Tag et kig p\u00e5 dette eksempel:<\/p>\n<pre><code class=\"language-js\">qwest.put(\"https:\/\/jsonplaceholder.typicode.com\/posts\/30\", {\n  title: 'PUT request with Qwest',\n  body: 'PUT request',\n  userId: 30\n})\n.then(function(xhr, response) {\n  console.log(response)\n})\n.catch(function(e, xhr, response) {\n  console.log(e)\n});<\/code><\/pre>\n<p>Bem\u00e6rk, at ID&#8217;et angives i URL&#8217;en og ikke i det objekt, der sendes til serveren.<\/p>\n<h4>S\u00e5dan sender du en DELETE Request i JavaScript ved hj\u00e6lp af Qwest<\/h4>\n<p>Hvis du vil slette et objekt fra en server, skal du som s\u00e6dvanlig angive URL-adressen og ID&#8217;et for det objekt, der skal slettes. B\u00e5de URL-adressen og ID&#8217;et for det objekt, der skal slettes, sendes som en parameter til metoden <code>delete()<\/code> i Qwest.<\/p>\n<p>Her er et eksempel:<\/p>\n<pre><code class=\"language-js\">qwest.delete(\"https:\/\/jsonplaceholder.typicode.com\/posts\/30\")\n.then(function(xhr, response) {\n  console.log(response)\n})\n.catch(function(e, xhr, response) {\n  console.log(e)\n});<\/code><\/pre>\n<p>N\u00e5r anmodningen er gennemf\u00f8rt med succes, slettes et objekt med ID 30.<\/p>\n<h2>Oversigt<\/h2>\n<p>Vores mulighed for at interagere med servere ved hj\u00e6lp af JavaScript har udviklet sig gennem \u00e5rene. Med et voksende og aktivt f\u00e6llesskab af <a href=\"https:\/\/kinqsta.com\/blog\/frontend-developer\/\">JavaScript-udviklere<\/a> foretages der stadig konstante \u00e6ndringer, og der indf\u00f8res nye v\u00e6rkt\u00f8jer for at g\u00f8re processen enklere og lettere.<\/p>\n<p>De metoder, der er diskuteret i denne tutorial, g\u00e6lder ikke kun for fjernservere &#8211; de kan ogs\u00e5 bruges til at interagere med dine egne servere, n\u00e5r du bygger full stack webapplikationer. De fungerer ogs\u00e5 med adskillige <a href=\"https:\/\/kinqsta.com\/dk\/blog\/javascript-biblioteker\/\">JavaScript-biblioteker og frameworks<\/a>.<\/p>\n\n<p>I denne vejledning har vi l\u00e6rt dig, hvordan du laver HTTP-anmodninger i JavaScript. Vi gav forskellige eksempler og forklaringer, der viste, hvordan man sender GET-, POST-, PUT\/PATCH- og DELETE-foresp\u00f8rgsler ved hj\u00e6lp af indbyggede JavaScript-metoder og tredjepartsbiblioteker.<\/p>\n<p>At bygge og implementere et websted kan v\u00e6re en kedelig opgave uanset dine f\u00e6rdigheder. Men Kinsta g\u00f8r det nemt og ubesv\u00e6ret med DevKinsta. DevKinsta bruges af over 25.000 udviklere, webdesignere og freelancere og tilbyder et lokalt milj\u00f8 til udvikling af WordPress-temaer, plugins og meget mere. <a href=\"https:\/\/kinqsta.com\/dk\/devkinsta\/\">Tjek det ud!<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Interaktionen mellem frontend og backend p\u00e5 websteder er muliggjort via HTTP-anmodninger. Funktioner som f.eks. at opdatere en ny\/gammel bruger i en database, udgive et blogindl\u00e6g fra &#8230;<\/p>\n","protected":false},"author":240,"featured_media":46763,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[583,584,559,197,38],"topic":[706],"class_list":["post-45942","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-http-requests","tag-http-status-codes","tag-javascript","tag-web-development","tag-webdev","topic-javascript-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>En vejledning i JavaScript HTTP-anmodninger<\/title>\n<meta name=\"description\" content=\"Kinsta Videnbase hj\u00e6lper med at besvare sp\u00f8rgsm\u00e5l om alt fra konto- og faktureringsrelaterede foresp\u00f8rgsler til generelle WordPress- og supportsp\u00f8rgsm\u00e5l.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/\" \/>\n<meta property=\"og:locale\" content=\"da_DK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"En vejledning i JavaScript HTTP-anmodninger\" \/>\n<meta property=\"og:description\" content=\"Kinsta Videnbase hj\u00e6lper med at besvare sp\u00f8rgsm\u00e5l om alt fra konto- og faktureringsrelaterede foresp\u00f8rgsler til generelle WordPress- og supportsp\u00f8rgsm\u00e5l.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-18T07:54:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T19:04:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ihechikara Abba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Kinsta Videnbase hj\u00e6lper med at besvare sp\u00f8rgsm\u00e5l om alt fra konto- og faktureringsrelaterede foresp\u00f8rgsler til generelle WordPress- og supportsp\u00f8rgsm\u00e5l.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_dk\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_dk\" \/>\n<meta name=\"twitter:label1\" content=\"Skrevet af\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ihechikara Abba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimeret l\u00e6setid\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 minutter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/\"},\"author\":{\"name\":\"Ihechikara Abba\",\"@id\":\"https:\/\/kinqsta.com\/dk\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26\"},\"headline\":\"En vejledning i JavaScript HTTP-anmodninger\",\"datePublished\":\"2022-10-18T07:54:52+00:00\",\"dateModified\":\"2025-10-01T19:04:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/\"},\"wordCount\":3566,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png\",\"keywords\":[\"http requests\",\"HTTP Status Codes\",\"JavaScript\",\"web development\",\"webdev\"],\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/\",\"url\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/\",\"name\":\"En vejledning i JavaScript HTTP-anmodninger\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png\",\"datePublished\":\"2022-10-18T07:54:52+00:00\",\"dateModified\":\"2025-10-01T19:04:08+00:00\",\"description\":\"Kinsta Videnbase hj\u00e6lper med at besvare sp\u00f8rgsm\u00e5l om alt fra konto- og faktureringsrelaterede foresp\u00f8rgsler til generelle WordPress- og supportsp\u00f8rgsm\u00e5l.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#breadcrumb\"},\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png\",\"contentUrl\":\"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png\",\"width\":1460,\"height\":730,\"caption\":\"En vejledning i JavaScript HTTP-anmodninger\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/dk\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript tutorials\",\"item\":\"https:\/\/kinqsta.com\/dk\/emner\/javascript-tutorials\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"En vejledning i JavaScript HTTP-anmodninger\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/dk\/#website\",\"url\":\"https:\/\/kinqsta.com\/dk\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Hurtig, sikker, premium hostingl\u00f8sninger\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/dk\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"da-DK\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/dk\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/dk\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinqsta.com\/dk\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/dk\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/\",\"https:\/\/x.com\/kinsta_dk\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinqsta.com\/dk\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26\",\"name\":\"Ihechikara Abba\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinqsta.com\/dk\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g\",\"caption\":\"Ihechikara Abba\"},\"description\":\"Ihechikara is a software developer and technical writer. He enjoys writing articles on web technologies, programming, and IT-related topics. Connect with Ihechikara on Twitter.\",\"url\":\"https:\/\/kinqsta.com\/dk\/blog\/author\/ihechivinabba\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"En vejledning i JavaScript HTTP-anmodninger","description":"Kinsta Videnbase hj\u00e6lper med at besvare sp\u00f8rgsm\u00e5l om alt fra konto- og faktureringsrelaterede foresp\u00f8rgsler til generelle WordPress- og supportsp\u00f8rgsm\u00e5l.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/","og_locale":"da_DK","og_type":"article","og_title":"En vejledning i JavaScript HTTP-anmodninger","og_description":"Kinsta Videnbase hj\u00e6lper med at besvare sp\u00f8rgsm\u00e5l om alt fra konto- og faktureringsrelaterede foresp\u00f8rgsler til generelle WordPress- og supportsp\u00f8rgsm\u00e5l.","og_url":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/","article_published_time":"2022-10-18T07:54:52+00:00","article_modified_time":"2025-10-01T19:04:08+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png","type":"image\/png"}],"author":"Ihechikara Abba","twitter_card":"summary_large_image","twitter_description":"Kinsta Videnbase hj\u00e6lper med at besvare sp\u00f8rgsm\u00e5l om alt fra konto- og faktureringsrelaterede foresp\u00f8rgsler til generelle WordPress- og supportsp\u00f8rgsm\u00e5l.","twitter_image":"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png","twitter_creator":"@kinsta_dk","twitter_site":"@kinsta_dk","twitter_misc":{"Skrevet af":"Ihechikara Abba","Estimeret l\u00e6setid":"22 minutter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/"},"author":{"name":"Ihechikara Abba","@id":"https:\/\/kinqsta.com\/dk\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26"},"headline":"En vejledning i JavaScript HTTP-anmodninger","datePublished":"2022-10-18T07:54:52+00:00","dateModified":"2025-10-01T19:04:08+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/"},"wordCount":3566,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/dk\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png","keywords":["http requests","HTTP Status Codes","JavaScript","web development","webdev"],"inLanguage":"da-DK","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/","url":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/","name":"En vejledning i JavaScript HTTP-anmodninger","isPartOf":{"@id":"https:\/\/kinqsta.com\/dk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png","datePublished":"2022-10-18T07:54:52+00:00","dateModified":"2025-10-01T19:04:08+00:00","description":"Kinsta Videnbase hj\u00e6lper med at besvare sp\u00f8rgsm\u00e5l om alt fra konto- og faktureringsrelaterede foresp\u00f8rgsler til generelle WordPress- og supportsp\u00f8rgsm\u00e5l.","breadcrumb":{"@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#breadcrumb"},"inLanguage":"da-DK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/"]}]},{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#primaryimage","url":"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png","contentUrl":"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2022\/10\/javascript-http-anmodning.png","width":1460,"height":730,"caption":"En vejledning i JavaScript HTTP-anmodninger"},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/dk\/blog\/javascript-http-anmodning\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/dk\/"},{"@type":"ListItem","position":2,"name":"JavaScript tutorials","item":"https:\/\/kinqsta.com\/dk\/emner\/javascript-tutorials\/"},{"@type":"ListItem","position":3,"name":"En vejledning i JavaScript HTTP-anmodninger"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/dk\/#website","url":"https:\/\/kinqsta.com\/dk\/","name":"Kinsta\u00ae","description":"Hurtig, sikker, premium hostingl\u00f8sninger","publisher":{"@id":"https:\/\/kinqsta.com\/dk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/dk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"da-DK"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/dk\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/dk\/","logo":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinqsta.com\/dk\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/dk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/","https:\/\/x.com\/kinsta_dk","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinqsta.com\/dk\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26","name":"Ihechikara Abba","image":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinqsta.com\/dk\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g","caption":"Ihechikara Abba"},"description":"Ihechikara is a software developer and technical writer. He enjoys writing articles on web technologies, programming, and IT-related topics. Connect with Ihechikara on Twitter.","url":"https:\/\/kinqsta.com\/dk\/blog\/author\/ihechivinabba\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/posts\/45942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/users\/240"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/comments?post=45942"}],"version-history":[{"count":9,"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/posts\/45942\/revisions"}],"predecessor-version":[{"id":49901,"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/posts\/45942\/revisions\/49901"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/translations\/dk"},{"href":"https:\/\/kinqsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/45942\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/media\/46763"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/media?parent=45942"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/tags?post=45942"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/dk\/wp-json\/wp\/v2\/topic?post=45942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}