Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebe ich „CSRF-Token-Nichtübereinstimmung für AJAX-POST-Anfrage' in Laravel?
Beheben von CSRF-Token-Nichtübereinstimmungen für AJAX-POST-Anfragen in Laravel
Beim Stellen von AJAX-POST-Anfragen in Laravel ist es wichtig, das CSRF-Token einzuschließen Verhindern Sie Cross-Site Request Forgery-Angriffe. In diesem Artikel befassen wir uns mit dem Problem „CSRF-Token-Nichtübereinstimmung für Ajax-POST-Anfrage“.
Problembeschreibung
Sie versuchen, Daten aus einer Datenbank zu löschen durch eine AJAX-Anfrage. Ihr HTML enthält Links, die beim Klicken den Löschvorgang auslösen. Der entsprechende AJAX-Code sendet eine POST-Anfrage an eine bestimmte URL. Der Löschvorgang schlägt jedoch fehl und Sie erhalten die Fehlermeldung „CSRF-Token stimmt nicht überein“.
Lösung
Um dieses Problem zu beheben, müssen Sie das CSRF-Token in Ihr AJAX aufnehmen Anfrage. Dies können Sie erreichen, indem Sie die folgende Zeile zu Ihrem Datenparameter hinzufügen:
data: { "_token": "{{ csrf_token() }}", "id": id }
wobei id die ID des Datensatzes darstellt, den Sie löschen möchten. Dieses Token stellt sicher, dass der Server die Anfrage überprüft, bevor er den Löschvorgang durchführt.
Aktualisierter AJAX-Code
Hier ist der aktualisierte AJAX-Code mit dem CSRF-Token:
$('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; } });
Durch die Einbindung des CSRF-Tokens in Ihre AJAX-Anfrage stellen Sie sicher, dass die Anfrage vom Server validiert wird. und der Löschvorgang wird ohne den Fehler „CSRF-Token-Nichtübereinstimmung“ erfolgreich sein.
Das obige ist der detaillierte Inhalt vonWie behebe ich „CSRF-Token-Nichtübereinstimmung für AJAX-POST-Anfrage' in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!