HTTP 405 Method Not Allowed

Endereço certo, verbo errado: o recurso existe mas não aceita este método HTTP.

O que significa o HTTP 405

HTTP 405 Method Not Allowed significa que o servidor reconhece a URL mas o método HTTP — GET, POST, PUT, DELETE — não é suportado para ela. A resposta deve incluir um cabeçalho Allow listando os métodos suportados.

Quase sempre é uma incompatibilidade entre cliente e API: um formulário fazendo POST para uma rota de página, um script enviando PUT onde a API espera PATCH, ou um webhook configurado com o método errado.

Causas comuns de erros 405

  • POST enviado para um endpoint que só trata GET (ou vice-versa) — típico depois de copiar e colar exemplos de API.
  • Um redirecionamento (301/302) converteu um POST em GET antes de a requisição chegar ao endpoint.
  • O servidor web bloqueia métodos como PUT/DELETE globalmente enquanto a aplicação os espera.
  • Uma rota errada: o endpoint pretendido é /api/items (POST), mas a requisição atingiu /items.

Como corrigir como desenvolvedor

  • Leia o cabeçalho de resposta Allow — ele lista exatamente quais métodos a URL aceita.
  • Verifique a documentação da API para o par correto de método e caminho.
  • Se houver um redirecionamento no caminho, use 307/308 para que o método sobreviva ao salto.
  • No servidor, garanta que a rota do framework declare o método e que nenhum proxy o remova.

Exemplo de resposta

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD
Content-Type: application/json

{"error":"method_not_allowed"}

Perguntas frequentes

Como vejo quais métodos uma URL suporta?

Verifique o cabeçalho Allow na resposta 405, ou envie uma requisição OPTIONS para a URL.

Por que meu POST virou GET?

Um redirecionamento 301 ou 302 no meio do caminho fez o cliente mudar de método. Use redirecionamentos 307/308 para endpoints que aceitam POST.

O 405 é um problema de cliente ou de servidor?

Formalmente um erro de cliente, mas frequentemente expõe uma configuração incorreta do servidor — uma rota sem um método ou um proxy bloqueando verbos.