Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann der Fehler „CSRF-Token-Nichtübereinstimmung' von Laravel in AJAX-POST-Anfragen behoben werden?

Wie kann der Fehler „CSRF-Token-Nichtübereinstimmung' von Laravel in AJAX-POST-Anfragen behoben werden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-10 02:44:13451Durchsuche

How to Solve Laravel's

Beheben von CSRF-Token-Konflikten in Laravel-AJAX-POST-Anfragen

Beim Versuch, Daten aus einer Datenbank mithilfe einer AJAX-POST-Anfrage in Laravel zu löschen, kann der Fehler „CSRF Token-Nichtübereinstimmung.“ Dies liegt daran, dass Laravel in allen Formen ein CSRF-Token zum Schutz vor Cross-Site-Request-Forgery-Angriffen enthält.

Definieren der AJAX-Anfrage

Der bereitgestellte HTML- und AJAX-Code zeigt ein Setup zum Löschen Daten:

HTML:

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

AJAX-Code:

$('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;
}
});

Hinzufügen des CSRF-Tokens

Um den Fehler „CSRF-Token-Nichtübereinstimmung“ zu beheben, müssen Sie das CSRF-Token in Ihre AJAX-Anfrage einschließen. Dies kann durch Hinzufügen des folgenden Codes zu Ihrer Anfrage erfolgen:

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

Aktualisierter AJAX-Code:

$('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;
}
});

Mit diesem Zusatz wird Ihre AJAX-Anfrage Folgendes enthalten: das CSRF-Token und die Daten, die Sie zum Durchführen des Löschvorgangs benötigen.

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „CSRF-Token-Nichtübereinstimmung' von Laravel in AJAX-POST-Anfragen behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn