> 백엔드 개발 > PHP 튜토리얼 > Laravel 5.5 AJAX 호출이 '419(알 수 없는 상태)' 오류를 반환하는 이유는 무엇입니까?

Laravel 5.5 AJAX 호출이 '419(알 수 없는 상태)' 오류를 반환하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-01 19:08:14
원래의
355명이 탐색했습니다.

Why Does My Laravel 5.5 AJAX Call Return a

Laravel 5.5 AJAX 호출은 "419(알 수 없는 상태)를 반환합니다.

소개

Laravel 5.5에서 AJAX 호출을 수행할 때, "419(알 수 없는 상태)" 오류가 발생하면 실망스러울 수 있습니다. 이 오류는 종종 CSRF(Cross-Site Request Forgery) 보호 문제를 나타냅니다. 이 문서에서는 이 오류의 원인을 살펴보고 이를 해결하기 위한 포괄적인 솔루션을 제공합니다.

CSRF 보호 이해

Laravel은 외부 요청을 통해 시작되는 무단 작업으로부터 보호하기 위한 CSRF 보호에는 요청이 합법적인 소스에서 오는지 확인하고 악의적인 행위자가 사용자에 대해 악의적인 작업을 실행하는 것을 방지하는 작업이 포함됩니다. 대신.

"419" 오류 해결

코드에 양식이 없으면 AJAX 요청에 제공된 토큰이 세션에 저장된 토큰과 일치하지 않기 때문에 오류가 발생합니다. 이 문제를 해결하려면 애플리케이션이 CSRF 토큰을 생성하고 이를 AJAX 요청에 포함하는지 확인해야 합니다. 맞습니다.

해결책

1. CSRF 메타 태그 추가

HTML의 헤드 섹션에 다음 메타 태그를 포함하세요.

<meta name="csrf-token" content="{{ csrf_token() }}">
로그인 후 복사

이 메타 태그는 고유한 CSRF 토큰을 생성하여 브라우저 세션에 저장합니다.

2. AJAX 요청 구성

AJAX 요청을 업데이트하여 메타 태그에서 CSRF 토큰을 검색하세요.

$.ajax({
  url: '/fetch-company/' + companyId,
  method: 'POST',
  headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
  },
  ...
});
로그인 후 복사

3. CSRF 보호 활성화

app/Http/Middleware/VerifyCsrfToken.php 미들웨어를 확인하여 Laravel 애플리케이션에서 CSRF 보호가 활성화되어 있는지 확인하세요. kernel.php 파일의 $middlewareGroups['web'] 배열에 추가해야 합니다.

결론

이러한 단계를 구현하면 "419(알 수 없는 상태)" 오류를 효과적으로 해결할 수 있습니다. Laravel 5.5에서 AJAX 호출을 할 때 " 오류가 발생했습니다. CSRF 보호는 웹 애플리케이션의 보안을 유지하는 데 중요하므로 이러한 지침을 주의 깊게 따르는 것이 중요합니다. CSRF 보호에 대한 추가 정보는 공식 Laravel 문서를 참조하세요.

위 내용은 Laravel 5.5 AJAX 호출이 '419(알 수 없는 상태)' 오류를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿