あじちゃんのブログ。備忘録。

〜エンジニアもOLなんですかね?

ルーティングが正しそうなのに死ぬときは post と バリデーションエラーによる redirect の罠

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpExceptionNo message

このエラー時に、疑うべきこと。

  • ルーティング間違い
  • post時のバリデーション落ちによるループエラー

→ どういうことかというと...

controller に post の function A, function B があるとして
A
→ post + param
→ Bに進むがバリデーションで落ちる
→ リダイレクト(問答無用でget)
→ Aに戻って画面を表示したいが get なので 403 エラー

 

確認順序

  • バリデーションを一番ゆるいものにしてみる(ガバガバ運用)
  • ルーティングを確認してみる(似たような名前で躓いている可能性)
  • HTMLを最も単純なものにする(クライアントのエラーか、サーバーのエラーかを切り分ける)
  • fetchのレスポンスを確認してみる(サーバーから帰ってきたレスポンスによってクライアントがリダイレクトしている可能性を排除)
  • typoを確認してみる(最も見つけにくいので最後)