405 Method Not Allowed

Esta URL não suporta esse método HTTP.

Quando usar

Um POST em um endpoint somente leitura. Inclua um cabeçalho Allow.

Causas comuns e soluções

Causas típicas: um POST para uma rota definida só para GET, uma rota do framework sem o handler de PUT ou DELETE, um formulário enviando para um arquivo estático (o nginx responde 405 a POST em conteúdo estático), ou um redirecionamento de barra final que transformou um POST em GET. A resposta deve incluir um cabeçalho Allow listando os métodos suportados; confira com curl -i -X OPTIONS na URL.

Um preflight CORS que cai em uma rota sem handler de OPTIONS recebe 405, e o navegador o informa como um erro de CORS. Adicione um middleware de CORS que responda ao OPTIONS antes do roteamento. Hosts estáticos, como os endpoints de site do S3 e o GitHub Pages, não aceitam POST de jeito nenhum, então formulários nesses lugares precisam de um backend separado. Use 501 quando o servidor não reconhece o método em lugar nenhum.

Erro do cliente (4xx)

Os códigos 4xx são erros do cliente: a própria requisição está errada, não está autorizada ou aponta para algo que não existe. Repetir a mesma requisição não vai adiantar.

Como fica

HTTP/1.1 405 Method Not Allowed

Como enviar

Node.js / Expressres.status(405).end()
Python / Flaskreturn '', 405
nginxreturn 405;

Como verificar

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Abrir Códigos de status HTTP