{"id":32769,"date":"2019-10-31T21:48:48","date_gmt":"2019-10-31T18:48:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript\/"},"modified":"2019-10-31T21:48:48","modified_gmt":"2019-10-31T18:48:48","slug":"oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","title":{"rendered":"Oops, I did it again: fejlfinding af almindelige JavaScript-fejl","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Oops, I did it again: fejlfinding af almindelige JavaScript-fejl\" src=\"\/wp-content\/uploads\/2019\/04\/1d3b45a6cf245d9f55f5a69c9b477d88.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nNogle gange kan det v\u00e6re sv\u00e6rt at skrive JavaScript-kode, og nogle bliver endda skr\u00e6mt, hvilket mange udviklere kender til. Under arbejdet opst\u00e5r der uundg\u00e5eligt fejl, og nogle af dem gentager sig ofte. I denne artikel, der henvender sig til begyndende udviklere, beskrives disse fejl og m\u00e5der at l\u00f8se dem p\u00e5. Til illustrative form\u00e5l er navne p\u00e5 funktioner, egenskaber og objekter taget fra <noindex><a rel=\"nofollow\" href=\"https:\/\/genius.com\/Britney-spears-lucky-lyrics\">en popul\u00e6r sang<\/a><\/noindex>. Alt dette hj\u00e6lper med hurtigt at huske, hvordan man retter almindelige fejl. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Vi minder om:<\/b> <i>til alle l\u00e6sere af 'Habr' \u2014 rabat p\u00e5 10.000 rubler ved tilmelding til et hvilket som helst Skillbox-kursus med rabatkoden 'Habr'.<\/i><\/p>\n<p><b>Skillbox anbefaler:<\/b> Praktisk kursus <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/agima\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=AGIMA&amp;utm_content=articles&amp;utm_term=oops\">\u00abMobil udvikler PRO\u00bb<\/a><\/noindex>.\n<\/p><\/blockquote>\n<p><\/p>\n<h3>TypeError: egenskab ikke defineret<\/h3>\n<p><\/p>\n<pre><code class=\"javascript\">let girl = {\n    name: \"Lucky\",\n    location: \"Hollywood\",\n    profession: \"star\",\n    thingsMissingInHerLife: true,\n    lovely: true,\n    cry: function() {\n        return \"cry, cry, cries in her lonely heart\"\n    }\n}\nconsole.log(girl.named.lucky)<\/code><\/pre>\n<p>\nEksemplet med koden ovenfor giver fejlen Uncaught TypeError: Cannot read property \u2018lucky\u2019 of undefined. Problemet er, at objektet girl ikke har en egenskab called named, selvom der findes en egenskab called name. Da egenskaben girl.named ikke er defineret, kan man ikke f\u00e5 adgang til den, da den formelt set ikke eksisterer. Men hvis man erstatter girl.named.lucky med girl.name, s\u00e5 fungerer det, og programmet returnerer Lucky.<\/p>\n<p>Man kan l\u00e6se mere om egenskaberne <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Working_with_Objects\">her<\/a><\/noindex>.<\/p>\n<h3>M\u00e5der at rette TypeError-fejl p\u00e5<\/h3>\n<p>\nTypeError-fejl opst\u00e5r, n\u00e5r programm\u00f8ren fors\u00f8ger at udf\u00f8re handlinger med data, der ikke svarer til en bestemt type. Som eksempel kan man tage brugen af .bold(), foresp\u00f8rgsel p\u00e5 en egenskab undefined eller kald af en funktion, som faktisk ikke er en funktion.<\/p>\n<p>S\u00e5 hvis man pr\u00f8ver at kalde girl (), vil der opst\u00e5 en fejl Uncaught TypeError: yourVariable.bold is not a function og girl is not a function, da der faktisk kaldes et objekt, ikke en funktion.<\/p>\n<p>For at rette fejlene er det n\u00f8dvendigt at unders\u00f8ge variablerne. Hvad er girl? Hvad er girl.named? Det kan man finde ud af ved at analysere koden, vise variablerne ved hj\u00e6lp af console.log med debugger-kommandoen eller ved at kalde variabelnavnet i konsollen. Man skal sikre sig, at man har mulighed for at arbejde med den datatyp, der er indeholdt i variablen. Hvis den ikke passer, skal man \u00e6ndre den, for eksempel ved at tilf\u00f8je en betingelse eller en try..catch-blok \u2014 og f\u00e5 kontrol over udf\u00f8relsen af operationen.<\/p>\n<h3>Stakoverl\u00f8b<\/h3>\n<p>\nHvis man tror p\u00e5 forfatterne af sangen Baby One More Time (det er Britney Spears, ja), betyder ordet hit i denne sammenh\u00e6ng, at sangeren \u00f8nsker, at nogen ringer til hende igen (her er en forklaring af selve sangens kontekst \u2014 bem\u00e6rkning fra overs\u00e6tteren). Det er meget muligt, at dette \u00f8nske f\u00f8rer til et \u00f8get antal opkald i virkeligheden. Men i programmering er det rekursion, en metode der kan for\u00e5rsage en fejl ved stak-overl\u00f8b.<\/p>\n<p>Fejl ser s\u00e5ledes ud:<\/p>\n<p><i>Error: Out of stack space (Edge)<br \/>\nInternalError: too much recursion (Firefox)<br \/>\nRangeError: Maximum call stack size exceeded (Chrome)<br \/>\n <\/i><br \/>\nStak-overl\u00f8b opst\u00e5r, hvis udvikleren ikke har taget h\u00f8jde for basisv\u00e6rdien i rekursionen, eller hvis koden ikke henviser til den forudsete situation.<\/p>\n<pre><code class=\"javascript\">function oneMoreTime(stillBelieve=true, loneliness=0) {\n    if (!stillBelieve &amp;&amp; loneliness &lt; 0) return\n    loneliness++\n    return oneMoreTime(stillBelieve, loneliness)\n}<\/code><\/pre>\n<p>\nI dette tilf\u00e6lde kan stillBelieve aldrig antage v\u00e6rdien false, s\u00e5 der vil hver gang ske et opkald til oneMoreTime, men funktionen vil aldrig afslutte sit udf\u00f8rsel.<\/p>\n<p>Hvis man derimod begynder at h\u00e5be p\u00e5 to venner, vil det mindske loneliness (ensomhed), og man kan slippe for at vente p\u00e5 opkaldet.<\/p>\n<pre><code class=\"javascript\">function oneMoreTime(stillBelieve=true, loneliness=0) {\n    if (!stillBelieve &amp;&amp; loneliness &lt; 0) return\n    loneliness--\n    stillBelieve = false\n    return oneMoreTime(stillBelieve, loneliness)\n}<\/code><\/pre>\n<p>\nSom eksempel kan man n\u00e6vne situationer med uendelige l\u00f8kker, hvor systemet ikke giver en fejlmeddelelse, men siden, hvor JavaScript-koden udf\u00f8res, blot fryser. Det sker, hvis while-l\u00f8kken ikke har en afslutningsbetingelse.<\/p>\n<pre><code class=\"javascript\">let worldEnded = false\n \nwhile (worldEnded !== true) {\n  console.log(\"Keep on dancin' till the world ends\")\n}<\/code><\/pre>\n<p>\nProblemet kan l\u00f8ses s\u00e5ledes:<\/p>\n<pre><code class=\"javascript\">let worldEnded = false\n \nwhile (worldEnded !== true) {\n  console.log(\"Keep on dancin' till the world ends\")\n  worldEnded = true\n}<\/code><\/pre>\n<p><\/p>\n<h3>Fejlretning af uendelige l\u00f8kker og rekursioner<\/h3>\n<p>\nHvis der opst\u00e5r et problem med en uendelig l\u00f8kke, skal man i Chrome eller Edge lukke fanen, mens man i Firefox skal lukke browservinduet. Herefter skal man omhyggeligt analysere koden. Hvis man ikke kan finde problemet, b\u00f8r man tilf\u00f8je kommandoen debugger i l\u00f8kken eller funktionen og tjekke v\u00e6rdierne p\u00e5 variablerne. Hvis resultatet ikke svarer til forventningen, skal man erstatte det, hvilket kan g\u00f8res nemt.<\/p>\n<p>I eksemplet ovenfor b\u00f8r debugger tilf\u00f8jes som den f\u00f8rste linje i funktionen eller l\u00f8kken. Derefter skal debuggervinduet \u00e5bnes i Chrome for at analysere variablerne i scope. Med knappen next kan man spore \u00e6ndringerne for hver iteration. Det er enkelt at g\u00f8re, og i de fleste tilf\u00e6lde er problemet fundet.<\/p>\n<p>For mere information kan du l\u00e6se her (<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/web\/tools\/chrome-devtools\/javascript\/\">til Chrome<\/a><\/noindex>) og her (<noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Tools\/Debugger\">til Firefox<\/a><\/noindex>).<\/p>\n<h3>Syntaksfejl<\/h3>\n<p>\nEn af de mest almindelige fejl i JavaScript er SyntaxError. Disse kan undg\u00e5s ved hj\u00e6lp af udvidelser til teksteditorer. For eksempel fremh\u00e6ver Bracket Pair Colorizer parenteser i koden med forskellige farver, og Prettier eller et lignende analysev\u00e6rkt\u00f8j g\u00f8r det nemt at finde fejl. Den bedste l\u00f8sning for at mindske sandsynligheden for en SyntaxError er at have minimal indlejring.<\/p>\n<p>Del dine tanker i kommentarerne: Hvad g\u00f8r du for at undg\u00e5 fejl eller hurtigt opdage og rette dem?<\/p>\n<blockquote><p><b>Skillbox anbefaler:<\/b><\/p>\n<ul>\n<li>To\u00e5rigt praktisk kursus <noindex><a rel=\"nofollow\" href=\"https:\/\/iamwebdev.skillbox.ru\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=WEBDEVPRO&amp;utm_content=articles&amp;utm_term=oops\">\u00abJeg er webudvikler PRO\u00bb<\/a><\/noindex>.<\/li>\n<li>Online kursus <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/c-sharp\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=CSHDEV&amp;utm_content=articles&amp;utm_term=oops\">\u00abC#-udvikler fra bunden\u00bb<\/a><\/noindex>.<\/li>\n<li>Praktisk \u00e5rs kursus <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/php\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=PHPDEV&amp;utm_content=articles&amp;utm_term=oops\">\"PHP-udvikler fra 0 til PRO\"<\/a><\/noindex>.\n<\/li>\n<\/ul>\n<\/blockquote>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillbox\/blog\/450194\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 JavaScript \u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e, \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0443\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043e\u0448\u0438\u0431\u043a\u0438, \u043f\u0440\u0438\u0447\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0435\u043d\u044c\u043a\u043e. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431 \u044d\u0442\u0438\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u043f\u0435\u0441\u043d\u0438. \u0412\u0441\u0435 \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24548,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-32769","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Oops, I did it again: \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 JavaScript | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:48:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:48:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Oops, I did it again: fejls\u00f8gning af almindelige fejl i JavaScript | ProHoster","description":"Nogle gange er det at skrive kode.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Oops, I did it again: \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 JavaScript | ProHoster","og:description":"\u041f\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430.","og:url":"https:\/\/prohoster.info\/da\/blog\/news\/oops-i-did-it-again-otladka-rasprostranennyh-oshibok-v-javascript","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:48:48+00:00","article:modified_time":"2019-10-31T18:48:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32769","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 12:28:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:52:26","updated":"2026-01-21 12:28:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/32769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=32769"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/32769\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/24548"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=32769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=32769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=32769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}