ajaxのエラーレスポンスの400をつけ忘れたときの話

※本サイトはアフィリエイトリンクを掲載しています。
Laravel

環境

  • Laravel8.65
  • MySQL8.0

実現したいこと

  • 画面遷移をさせないために非同期通信を使う。
  • ボタンを押下時に、非同期通信でDBからデータが取得する。
    成功すれば「成功アラート」を表示する。
  • ボタン押下時にDBからでデータが取得できない、または何らかの不具合が起きた場合は「失敗アラート」を表示する。

ソースコード

うまく動く例

test.blade.php

TestController.php

ルーティングファイル

うまく動かない例

TestContoroller.phpのajax関数の

の400を書き忘れると、どうなるか。
例えば、この400を書き忘れるとcatch文の例外処理が走っても、「成功」アラートが出てしまいます。
本来は例外処理が走っているので、test.blade.phpのfailの処理が走って「失敗」アラートが出てほしい期待値ですね。

test.bladeのfailの処理ではなくてsuccessの処理が走るんですね。

ちなみにtest.blade.phpのsucessとfailの引数にはレスポンス値が入ります。
sucessならデータベースから取得した配列がとれます。

コメント