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
Freigeben: 2024-12-10 02:44:13
Original
456 Leute haben es durchsucht

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="#">
Nach dem Login kopieren

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;
}
});
Nach dem Login kopieren

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
        }
Nach dem Login kopieren

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;
}
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage