
Wanneer je een verzoek doet naar een server en alles lijkt technisch gezien te kloppen, de URL bestaat, de server is bereikbaar, kan het toch gebeuren dat je een foutmelding ontvangt. Een voorbeeld daarvan is de 405 error: Method Not Allowed.
Deze melding betekent dat de server het verzoek heeft ontvangen, maar de gebruikte HTTP-methode (zoals GET, POST of PUT) niet toestaat voor het specifieke endpoint waar je contact mee probeert te maken. Met andere woorden: je probeert een geldige actie uit te voeren, maar op een manier die door de server wordt geweigerd.
De foutmelding komt regelmatig voor bij het werken met API’s, dynamische routes of formulierverzendingen, en kan in eerste instantie verwarrend zijn. Alles lijkt aanwezig om een succesvolle interactie met de server tot stand te brengen, maar toch krijg je geen goed antwoord terug. In dit artikel leggen we uit wat de http 405 fout precies inhoudt, waarom deze ontstaat, en hoe je het probleem kunt oplossen.
Wat is status code 405?
De 405 status code komt uit het HTTP-protocol en betekent letterlijk: Method Not Allowed. Niet omdat je fout zit met de URL, of omdat de pagina niet bestaat (zoals bij een 404), maar omdat de manier waarop je iets probeert op te vragen, niet is toegestaan.
Het zit dus niet in wat je opvraagt, maar in hoe je dat doet.
In de praktijk betekent dit meestal dat je bijvoorbeeld een POST of PUT verzoek stuurt naar een endpoint dat alleen GET accepteert. De server kent de methode wel, hij weigert ‘m alleen voor die specifieke route. En dat weigeren doet ‘ie bewust.
In de response zie je dan vaak zoiets als:
HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD
Die Allow header is cruciaal. Hij vertelt je welke methoden wel zijn toegestaan voor deze resource. Geen POST? Dan is het antwoord simpel: je mag hier niet posten. Punt.
Hoe ontstaat een 405 foutmelding?
Er is niet één oorzaak voor een http 405. Maar er zijn wel een paar usual suspects die je altijd even moet checken.
Soms is het zo simpel als een frontendformulier dat een POST verstuurt naar een route die alleen GET accepteert. Soms zit het dieper: een serverconfiguratie, een fout in de routering, of een API die niet goed geconfigureerd is.
Werk je met een framework? Dan kan het net zo goed een route zijn die geen PUT toestaat terwijl jij dat wél probeert. En gebruik je WordPress of een ander CMS? Dan kan een securityplugin bepaalde methoden blokkeren.
Typische scenario’s:
- Je stuurt een POST naar een statisch HTML-bestand
- Je API accepteert alleen GET en HEAD, maar jij stuurt PUT
- Je firewall ziet een DELETE en grijpt in
- Je server is verkeerd geconfigureerd en blokkeert methoden via .htaccess of Nginx rules
Kortom: het verzoek komt aan. Maar wordt bewust geweigerd.
405 status code oplossen: wat kun je doen?

De foutmelding zelf zegt weinig, maar de oplossing is vaak technisch goed te herleiden. Begin bij de methode die je gebruikt. Vraag je af: is deze methode toegestaan voor deze route? En zo niet: waarom niet?
Hier zijn vijf methodes om de status code 405 method not allowed te tackelen:
1. Check de gebruikte HTTP-methode
Gebruik je de juiste methode voor deze route? Niet elk endpoint accepteert POST, PUT of DELETE. Soms is GET de enige optie. Gebruik Postman, curl of de browserdevtools om te zien wat je precies verstuurt, en wat de server teruggeeft. Kijk vooral naar de Allow header in de response. Die vertelt je wat er wél mag.
2. Inspecteer je routes of endpointconfiguratie
In backend-frameworks zoals Laravel, Express, Rails of Django moeten routes expliciet methoden accepteren. Als je route /producten alleen GET accepteert, dan krijg je een 405 als je probeert te POSTen. Even checken in je router- of controllerbestand kan al veel ophelderen.
3. Bekijk je server- of .htaccess-configuratie
Op Apache-systemen kun je methoden blokkeren via .htaccess met een Limit directive. In Nginx is dat via limit_except. Een verkeerd ingestelde regel kan legitieme verzoeken blokkeren. Even een ogenblikje in de serverconfiguratie duiken loont hier absoluut.
4. Schakel plugins of firewalls tijdelijk uit
Bij CMS’en zoals WordPress of Joomla kan een securityplugin methoden blokkeren zonder dat je het merkt. Vooral DELETE, PUT of zelfs PATCH kunnen als verdacht gedrag worden aangemerkt. Zet tijdelijk je plugins uit, test opnieuw, en kijk of de fout verdwijnt.
5. Analyseer de headers van het verzoek
Gebruik de developer console van je browser of een tool als curl. Kijk naar de request en response headers. Stuur je alles correct mee? En wat zegt de Allow header? Soms geeft de server precies aan wat je wél mag doen. Dat maakt debuggen een stuk makkelijker.
Tot slot
Een 405 method not allowed is technisch gezien een nette fout. Alles werkt, behalve de methode. Dat maakt ‘m ook frustrerend. Vooral als je denkt dat het endpoint gewoon goed staat, of als je geen toegang hebt tot de serverconfig.
Wat het ook is: de 405 is geen bug. Het is een beperking. Een grens. En jouw taak is om uit te zoeken waar die grens ligt, en waarom jij ertegenaan loopt.
Dus zie je een 405 error? Vraag je dan niet af of je iets fout doet, maar wat je probeert te doen, en of dat überhaupt is toegestaan.