Selv om det ikke var typisk at bruge billeder, video og GIF’er i de tidlige dage af internettet, forventer vi nu, at et websted tilbyder tiltalende visuelle elementer samt informativ tekst. Det er heller ikke overraskende, at når kommunikationen mellem browseren og serveren går galt på grund af et mismatch i medierne, vil du se en fejl. I dette tilfælde er der tale om en “HTTP 415”-fejl.
Da medier næsten er en forudsætning for det moderne web, betyder det at se en fejl i forbindelse med det, at du har brug for en løsning, hurtigt. Men i modsætning til andre fejlrettelser – især for WordPress-websteder – er dette problem en besværlig ting. Du har muligvis brug for noget viden om kodning for at løse dette, men det er noget til senere.
Se vores videoguide til at rette 415-fejlen
I dette indlæg vil vi se nærmere på “HTTP 415”-fejlen og tale om, hvad der forårsager den. Derfra vil vi diskutere, hvordan du kan rette den.
Hvad er HTTP 415-fejlen
Fejlen “HTTP 415” er en af mange 4XX-statuskoder. Hvis du forstår, at den er makker med fejl som f.eks. 404, begynder du at forstå, hvad der sker.
Kort sagt handler 4XX-fejlene alle om, at der mangler noget, som enten klienten eller serveren har brug for. Det fulde navn på fejlen – en “415 Unsupported Media Type” – afslører spillet. Serveren modtager en mediefiltype, som den ikke genkender eller ikke kan acceptere.
Under de fleste omstændigheder vil du se “HTTP 415”-fejlen, når du bruger en API (Application Programming Interface). Det er et problem på serversiden, og som det næste vil vi diskutere, hvorfor det overhovedet sker.
Hvorfor HTTP 415-fejlen opstår
Uanset hvad du kalder det – “HTTP 415”-fejlen, “415 Unsupported Media Type”-fejlen – betyder det, at serveren nægter at acceptere en forespørgsel fra browseren. Det vil ofte skyldes, at det, som browseren sender (payload), ikke er i det rigtige format.
Det er et lignende problem som “422 Unprocessable Entity“-fejlen, da de begge handler om, at forkerte data rammer serveren, og at denne flipper ud. Det er også værd at påpege, at der er forskel på de data, som browseren sender, og de data, som serveren modtager. De kan synes at være det samme, men der er en forskel.
F.eks. vil en generel fejlfindingsstrategi forhindre en bruger i at tage en ikke-erkendt filtype og uploade den via en grænseflade, der kun accepterer PNG-filer. Men hvis du ikke angiver de nøjagtige medietyper, som en server kan behandle, vil det udløse en fejl i backend. I frontenden kan en bruger måske ikke se noget som helst. WordPress-brugere får en meddelelse på en adminskærm:
Den gode nyhed er, at WordPress har en tilladelsesvenlig infrastruktur – tænk på de forskellige filtyper, du kan uploade til mediebiblioteket, for eksempel.
Alligevel er dette et problem på udviklerniveau snarere end en brugerfejl. Som sådan vil vi dykke ned i, hvad rettelserne kan være næste gang.
Sådan retter du HTTP 415-error
For at opsummere fortæller “HTTP 415”-fejlen dig, at serveren ikke accepterer en filtype, fordi den ikke understøtter den pågældende nyttelast. Det betyder, at der er et problem i den underliggende PHP-kode, som skal rettes.
Hvis du ikke er udvikleren af webstedet eller temaet, og du ikke har nogen kodningsevner, vil du sandsynligvis kontakte en person med ekspertise på dette punkt. Hvis du roder rundt i dit temas filer, kan det være årsag til et problem.
Mozilla-dokumentationen om fejlen giver dig dog to spor til at begynde din søgning – to “repræsentationsheadsere”: Content-Type og Content-Encoding.
Sådan fungerer Content-Type- og Content-Encoding-headers
Content-Type-headeren giver klientforespørgslen ressourcen, før der sker nogen form for kodning. Den angiver den oprindelige medietype for ressourcen. For eksempel:
Content-Type: text/html; charset=UTF-8
Content-Type: image/jpeg;
I modsætning hertil er Content-Encoding en liste over alle de kodninger, som nyttelasten (dvs. dit medie) har, hvilket er en indikator for, hvordan filen skal dekodes for at få den oprindelige nyttelast.
Content-Encoding: gzip
Content-Encoding: br
Som du kan se, er filkomprimering en almindelig måde at kode data på. Dette er ikke et problem i teorien, men vil være det, hvis du ikke koder dette i de relevante filer for dit tema eller plugin.
Finde en løsning på HTTP 415-fejlkoden
På baggrund af ovenstående har du tre muligheder at undersøge, hvis du opdager en HTTP 415-fejl – alle relateret til din PHP-kode:
- Du skal sikre dig, at du sender den rigtige Content-Type-headerværdi.
- Du skal også sikre dig, at serveren kan behandle det, du angiver som Content-Type-headeren.
- Kontroller, hvad serveren kan behandle via Accept-headeren.
Du vil ikke nødvendigvis gøre dette i kernefilerne, selv om du kan gøre det som en del af en REST API-forespørgsel. For eksempel havde en bruger fra Stack Overflow præcis dette problem, da han brugte ren PHP over cURL til at foretage en API-forespørgsel.
Der er to steder at kigge. For det første skal du angive de korrekte filtyper i Content-Type-headeren:
$headers = array (
‘Content-Type’ => ‘application/json’,
…
For det andet havde denne bruger en skrivefejl, da han erklærede en ugyldig header-nøgle ved hjælp af funktionen wp_remote_post():
$arg = array (
'header' => $headers,
…
Fordi “header” mangler et “s”, ville det give en “HTTP 415”-fejl. Du vil dog også gerne sikre dig, at klienten også kan acceptere de rigtige filtyper. Det gør du ved hjælp af en anden header: Accept. For eksempel:
Accept: text/html
Accept: image/*
Dette sikrer, at begge ender af kæden – klient- og serversiden – kan acceptere og sende de rigtige filtyper og sætte en stopper for “HTTP 415”-fejlen for altid.
Opsummering
Fejl på websites er ofte ligetil at rette. Vi har gjort det en række gange på Kinsta-bloggen, og platformens karakter betyder, at du kan være klar til at rocke og rulle i løbet af kort tid. “HTTP 415” er dog anderledes, idet en rettelse er svær at finde, hvis du ikke er udvikler.
Løsningen er at arbejde med Content-Type-headerværdierne for at sikre, at du sender den rigtige til serveren. Du kan også have en simpel skrivefejl. Dette virker som et “doh”-øjeblik, men i dette tilfælde kan de være vanskelige at opdage, især hvis du er bekymret for de indholdstyper, du sender til serveren.
Mens “HTTP 415”-fejlen er din egen at rette, er Kinsta klar til at løse andre problemer med dit websted. Vi har vores supportteam klar til at hjælpe dig med at forstå dit websted i de sjældne tilfælde, hvor det ikke kan indlæses.