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 AllowedComo enviar
| Node.js / Express | res.status(405).end() |
|---|---|
| Python / Flask | return '', 405 |
| nginx | return 405; |
Como verificar
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/