>백엔드 개발 >PHP 튜토리얼 >AJAX POST 요청에서 Laravel의 'CSRF 토큰 불일치' 오류를 해결하는 방법은 무엇입니까?

AJAX POST 요청에서 Laravel의 'CSRF 토큰 불일치' 오류를 해결하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-10 02:44:13450검색

How to Solve Laravel's

Laravel AJAX POST 요청에서 CSRF 토큰 불일치 해결

Laravel에서 AJAX POST 요청을 사용하여 데이터베이스에서 데이터를 삭제하려고 하면 "CSRF 토큰이 일치하지 않습니다." 이는 Laravel이 교차 사이트 요청 위조 공격으로부터 보호하기 위해 모든 형태의 CSRF 토큰을 포함하기 때문에 발생합니다.

AJAX 요청 정의

제공된 HTML 및 AJAX 코드는 삭제를 위한 설정을 보여줍니다. 데이터:

HTML:

@foreach($a as $lis)
  //some code
  <a href="#">

AJAX 코드:

$('body').on('click', '.delteadd', function (e) {
e.preventDefault();
//alert('am i here');
if (confirm('Are you sure you want to Delete Ad ?')) {
    var id = $(this).attr('id');
    $.ajax({
        method: "POST",
        url: "{{url()}}/delteadd",
        }).done(function( msg ) {
        if(msg.error == 0){
            //$('.sucess-status-update').html(msg.message);
            alert(msg.message);
        }else{
            alert(msg.message);
            //$('.error-favourite-message').html(msg.message);
        }
    });
} else {
    return false;
}
});

CSRF 토큰 추가

"CSRF 토큰 불일치" 오류를 해결하려면 CSRF를 포함해야 합니다. AJAX 요청에 토큰을 추가하세요. 요청에 다음 코드를 추가하면 됩니다.

data: {
        "_token": "{{ csrf_token() }}",
        "id": id
        }

업데이트된 AJAX 코드:

$('body').on('click', '.delteadd', function (e) {
e.preventDefault();
//alert('am i here');
if (confirm('Are you sure you want to Delete Ad ?')) {
    var id = $(this).attr('id');
    $.ajax({
        method: "POST",
        url: "{{url()}}/delteadd",
        data: {
        "_token": "{{ csrf_token() }}",
        "id": id
        }
        }).done(function( msg ) {
        if(msg.error == 0){
            //$('.sucess-status-update').html(msg.message);
            alert(msg.message);
        }else{
            alert(msg.message);
            //$('.error-favourite-message').html(msg.message);
        }
    });
} else {
    return false;
}
});

이를 추가하면 AJAX 요청에 다음이 포함됩니다. CSRF 토큰과 삭제 작업을 수행하는 데 필요한 데이터.

위 내용은 AJAX POST 요청에서 Laravel의 'CSRF 토큰 불일치' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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