Det var visserligen inte så vanligt att använda bilder, video och GIF: ar i webbens tidiga dagar. Idag så förväntar vi oss dock att en webbplats erbjuder tilltalande visuella bilder samt en informativ text. När kommunikationen mellan webbläsaren och servern går snett på grund av att medierna inte stämmer överens så kommer du att möta ett fel. Detta kommer nog inte som en överraskning. I det här fallet så handlar det om felet ”HTTP 415”.

Media är nästan är en förutsättning för den moderna webben. Ett fel som är relaterat till detta behöver med andra ord en snabb lösning. Men till skillnad från andra feljusteringar – särskilt för WordPress-webbplatser – så är det här problemet en tuff sak. Du kan behöva en del kodningskunskaper för att lösa detta, men det tar vi senare.

Kolla in vår videoguide om hur du åtgärdar 415-felet

I det här inlägget så ska vi titta på felet ”HTTP 415” och prata om vad som orsakar detta. Därefter så diskuterar vi hur du kan åtgärda det.

Vad felet HTTP 415 är

Felet ”HTTP 415” är en av många 4XX-statuskoder. Om du förstår att det tillhör samma kategori som exempelvis fel 404, så kan du förstå vad som händer.

I korthet så handlar 4XX-felen om att något saknas som antingen klienten eller servern behöver. Det fullständiga namnet på felet – ”415 Unsupported Media Type” – avslöjar vad det handlar om. Servern tar emot en mediefiltyp som den inte känner igen eller inte kan acceptera.

Under de flesta omständigheter så möter du felet ”HTTP 415” när du använder ett gränssnitt för tillämpningsprogrammering (API). Det är en applikation på serversidan, och härnäst så diskuterar vi varför detta händer överhuvudtaget.

Varför HTTP 415-felet uppstår

Du kan kalla det för olika saker – ”HTTP 415”-felet, eller ”415 Unsupported Media Type”-felet. Det betyder dock i samtliga fall att servern vägrar att acceptera en begäran från webbläsaren. Detta beror ofta på att det som webbläsaren skickar (nyttolasten) inte är i rätt format.

”HTTP 415”-felet är ett liknande problem som ”422 Unprocessable Entity”-felet. Båda handlar nämligen om att fel data når servern och att den senare blir galen. Det är även värt att påpeka att det finns en skillnad mellan data som webbläsaren skickar och data som servern tar emot. De kan tyckas vara samma, men det finns en skillnad.

En allmän strategi för att fånga upp fel kommer exempelvis att hindra en användare från att ta en filtyp som inte känns igen. Det går inte heller att ladda upp den via ett gränssnitt som endast accepterar PNG-filer. Om du däremot inte anger exakt vilka typer av media som en server kan bearbeta så blir det fel i backend. Frondend kanske inte visar detta fel för användaren. WordPress-användare får ett meddelande på administratörsskärmen:

Felet Filtyp är inte tillåten i WordPress.
Felet Filtyp är inte tillåten i WordPress.

Den goda nyheten är att WordPress har en tillåtande infrastruktur – tänk exempelvis på de olika filtyperna som du kan ladda upp till Mediebiblioteket.

Detta är dock snarare ett problem på utvecklarnivå än ett användarfel. Härnäst så djupdyker vi i vilka justeringar som du kan göra.

Så här åtgärdar du HTTP 415-felet

För att sammanfatta: felet ”HTTP 415” talar om att servern inte accepterar en filtyp eftersom den inte har stöd för den nyttolasten. Det betyder att det finns ett problem i den underliggande PHP-koden som behöver åtgärdas.

Du kanske inte är den som har utvecklat webbplatsen eller temat och saknar kodningskunskaper? Då bör du troligen kontakta någon expert. Om du pillar runt i temats filer så kan det orsaka problem.

Mozillas dokumentation om felet ger dig dock två ledtrådar för att börja ditt sökande – två ”representation headers”: Content-Type och Content-Encoding.

Hur innehållsrubrikerna Content-Type och Content-Encoding fungerar

Content-Type-huvudet ger klientförfrågan resursen innan någon kodning sker. Den anger resursens ursprungliga medietyp. Exempelvis:


Content-Type: text/html; charset=UTF-8

Content-Type: image/jpeg;

Det är en indikator på hur filen ska avkodas för att få fram den ursprungliga nyttolasten.


Content-Encoding: gzip

Content-Encoding: br

Som du kan se så är filkomprimering ett vanligt sätt att koda data. Detta är inget problem i teorin men kommer att bli det om du inte kodar in detta i de relevanta filerna för ditt tema eller plugin.

Hitta en lösning för HTTP 415-felkoden

Med tanke på ovanstående så har du tre vägar att utforska om du upptäcker ett HTTP 415-fel – alla har med din PHP-kod att göra:

  • Du måste se till att du skickar rätt Content-Type-huvudvärde.
  • Se även till att servern kan bearbeta det som du anger för Content-Type-huvudet.
  • Kontrollera vad servern kan bearbeta genom Accept-huvudet.

Du kommer inte nödvändigtvis att göra detta i kärnfilerna, även om du kan göra det som en del av en REST API-begäran. En användare från Stack Overflow hade exempelvis exakt det här problemet när han använde ren PHP över cURL för att göra en API-begäran.

Det finns två ställen att leta på. För det första så ska du ange rätt filtyper i Content-Type-huvudet:


$headers = array (

    ‘Content-Type’ => ‘application/json’,

   …

För det andra så hade den här användaren ett skrivfel när han deklarerade en ogiltig header key med funktionen wp_remote_post():


$arg = array (

    'header' => $headers,

    …

Eftersom ”header” saknar ett ”s” så uppstår felet ”HTTP 415”. Du bör dock även se till att klienten kan acceptera rätt filtyper. Detta kan göras med hjälp av ett annat huvud: Accept. Exempelvis:


Accept: text/html

Accept: image/*

Detta säkerställer att båda ändarna av kedjan – klient- och serversidan – kan acceptera och skicka rätt filtyper, vilket gör att felmeddelandet ”HTTP 415” upphör för gott.

Sammanfattning

Webbplatsfel är ofta enkla att åtgärda. Vi har gjort det ett antal gånger på Kinsta-bloggen, och plattformens karaktär innebär att du kan vara redo att börja jobba på kort tid. ”HTTP 415” är dock annorlunda. En lösning är nämligen svår att få fram om du inte är utvecklare.

Lösningen är att arbeta med Content-Type-huvudvärdena för att se till att du skickar rätt till servern. Det kan även handla om ett enkelt skrivfel. Det här verkar vara ett ”doh”-ögonblick. I det här fallet kan de dock vara svåra att upptäcka, särskilt om det handlar om de innehållstyper som du skickar till servern.

Även om felet ”HTTP 415” måste åtgärdas av dig, så är Kinsta på jour när det gäller andra problem med din webbplats. Vi har ett supportteam som är redo att hjälpa dig att förstå din webbplats vid de sällsynta tillfällen när den inte laddas.