>백엔드 개발 >PHP 튜토리얼 >Laravel Ajax 요청에서 419 POST 오류가 발생하는 이유는 무엇입니까?

Laravel Ajax 요청에서 419 POST 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-03 02:16:02580검색

Why Am I Getting a 419 POST Error in My Laravel Ajax Requests?

Ajax Laravel 419 POST 오류 이해 및 해결

Laravel 419 POST 오류는 Ajax 요청에서 발생하는 일반적인 문제입니다. 요청 헤더에 CSRF(Cross-Site Request Forgery) 보호 토큰이 누락되어 발생합니다. Laravel은 외부 소스로부터의 악의적인 요청을 방지하기 위해 기본적으로 CSRF 보호를 구현합니다.

419 오류의 근본 원인

Laravel은 각 활성 사용자 세션에 대해 고유한 CSRF 토큰을 생성합니다. 이 토큰은 인증된 사용자가 요청한 사용자인지 확인하는 데 사용됩니다. 요청에 올바른 CSRF 토큰이 포함되어 있지 않으면 Laravel은 419 오류를 반환합니다.

Ajax 호출 구성

제공된 Ajax 호출에서 X-CSRF- TOKEN 헤더가 누락되었습니다. 모든 요청에 ​​토큰을 포함하려면 Ajax 호출 설정에 다음 행을 추가하세요.

<code class="javascript">$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});</code>

이렇게 하면 CSRF 토큰이 모든 Ajax 요청에 포함되어 Laravel의 CSRF 보호와 호환됩니다.

대체 솔루션: CSRF 확인에서 경로 제외

또는 verifyCSRFToken 미들웨어의 CSRF 토큰 확인에서 특정 경로를 제외할 수 있습니다. app/Http/Kernel.php에서 $just 속성에 원하는 경로를 추가합니다.

<code class="php">protected $except = [
    '/route_you_want_to_ignore',
    '/route_group/*
];</code>

이렇게 하면 지정된 경로가 CSRF 토큰 확인에서 제외되어 Ajax 요청에 대한 419 오류를 우회할 수 있습니다.

결론

Ajax 요청에 CSRF 토큰을 포함하거나 CSRF 검증에서 해당 경로를 제외하면 Ajax Laravel 419 POST 오류를 효과적으로 해결하고 무결성을 보장할 수 있습니다. 귀하의 애플리케이션 요청 중

위 내용은 Laravel Ajax 요청에서 419 POST 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.