Laravel에서 Ajax를 디버깅하는 방법

최근에는 쭉 Java 사용하고 있었습니다만, 후배의 도움으로 1년만에 Laravel를 건드렸습니다.
눈치채면 version 5.5 까지 가고 있었습니다. 네, 더 먼저 있나요?

후배에게 가르친 것을 정리합니다.
타이틀에서는 Laravel 라고 써 있습니다만, 보편적인 내용도 조금 믹스하고 있습니다.

환경



・Laravel 5.5
· Google 크롬
· jQuery (아마 다른 js 라이브러리에서도 비슷한 느낌이 될까)

구현 예



app.blade.php
<!-- head 内に追記 -->
<meta name="csrf-token" content="{{ csrf_token() }}">

app.js
$.ajax({
  headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  }
  type : "POST",
  data: {
    "id" : id,
    "name" : name
  },
  url : './doSomething' /* HogeController@doSomething に合わせる */
  dataType : "json",
);

HogeController.php
namespace App\Http\Controllers;

use App\Hoge;
use App\Http\Controllers\Controller;
use Log;

class UserController extends Controller
{
    public function doSomething(Request $request)
    {
        Log::debug($request);
    }
}

디버깅 방법



Ajax에서 보낸 URI가 올바른지 알고 싶습니다.



Google Developper tool을 사용하세요.
・500번대→패스는 맞지만 php의 처리중에 에러가 발생하고 있다
・400번대→패스가 잘못되어 있다
・200→처리는 성공하고 있다右クリック→検証→Network→XHR 에서 Ajax의 전송 상황 (Request, Response 등)을 볼 수 있습니다.
네트워크 송수신에 관련된 복잡한 xml이 나옵니다만, 열심히 읽어 봅시다.



※출력되는 복잡한 xml 은 『네트워크는 왜 연결되는가』 뭔가 읽으면 이해할 수 있게 되어 옵니다.

데이터가 제대로 통과하는지 알고 싶습니다.



log.php
/* 問題ないコード storage/log/laravel.log へ出力される */
Log::debug($request);

log.php
/* 失敗するコード 原因は追っていない */
dd($request);
dd($request->all());

dd 라고 편리 툴은 이번 처음으로 알았습니다.
매우 편리한 기능이라고 생각합니다만, 페이지 바뀌는 것 같기 때문에 Ajax 와 궁합 나쁜 것입니까.
여러가지 시도해도 500 돌아왔습니다.
여기는 얌전하게 Laravel 표준 로거를 사용하여 .log 파일을 읽어 봅시다.

좋은 웹페이지 즐겨찾기