질문:
저는 Laravel 5.5에서 AJAX를 호출했지만 "419 (알 수 없는 상태)' 오류가 발생했습니다. 내 페이지에 양식이 없음에도 불구하고 CSRF 토큰에 문제가 있는 것으로 의심됩니다. 이 문제를 어떻게 해결할 수 있습니까?
답변:
클라이언트 측:
HTML 헤드 섹션에 다음:
<meta name="csrf-token" content="{{ csrf_token() }}">
이것은 서버가 유효성을 검사하는 데 사용할 고유한 CSRF 토큰을 생성합니다. 들어오는 요청.
AJAX 요청:
헤더에 CSRF 토큰을 포함하도록 AJAX 요청을 수정합니다.
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });
이렇게 하면 서버는 요청의 출처를 확인하고 CSRF를 방지할 수 있습니다.
Laravel 미들웨어(선택 사항):
Laravel은 자동으로 CSRF 미들웨어를 적용하여 POST 요청을 보호합니다. 특정 경로(예: AJAX 호출을 처리하는 경로)에 대해 이 미들웨어를 비활성화하려면 AppHttpMiddlewareVerifyCsrfToken 미들웨어에 다음 줄을 추가하세요.
/** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ '/fetch-company/*', ];
참조:
위 내용은 Laravel 5.5 AJAX 419 오류: CSRF 토큰 문제를 해결하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!