405 Method Not Allowed
HTTPリクエストのメソッドがサーバーで許可されていない場合のエラー
概要
HTTPリクエストで使用したメソッド(GET、POST、PUT、DELETEなど)が、対象のリソースでサポートされていない場合に返されるステータスコードです。
エラーメッセージ
HTTP/1.1 405 Method Not Allowed
Allow: GET, POST
| |
原因
- 間違ったHTTPメソッド: POSTすべきところをGETでリクエスト
- ルーティング設定: サーバー側でメソッドが許可されていない
- CORS: プリフライトリクエストで許可されていないメソッド
- リソースの制限: 特定のリソースでは一部メソッドのみ許可
- フレームワークの設定: ルート定義でメソッドが指定されていない
解決策
1. 正しいHTTPメソッドを使用
| |
2. サーバー側でメソッドを許可
| |
| |
3. CORSでメソッドを許可
| |
| |
4. Nginxでの設定
| |
5. Laravelでの設定
| |
6. フォームでのメソッドスプーフィング
| |
7. Allowヘッダーを確認
| |
8. クライアント側のエラーハンドリング
| |
よくある間違い
- HTMLフォームでPUT/DELETEを直接使おうとする
- APIドキュメントを確認せずにメソッドを選ぶ
- GETリクエストでボディを送信しようとする
- CORSのプリフライトでメソッドが拒否されている
関連エラー
参考リンク
HTTP の他のエラー
この記事は役に立ちましたか?