Heim >Backend-Entwicklung >PHP-Tutorial >Laravel 5.5 AJAX 419-Fehler: Wie behebt man CSRF-Token-Probleme?

Laravel 5.5 AJAX 419-Fehler: Wie behebt man CSRF-Token-Probleme?

DDD
DDDOriginal
2024-12-01 11:08:11458Durchsuche

Laravel 5.5 AJAX 419 Error: How to Fix CSRF Token Issues?

Laravel 5.5 AJAX-Anruf gibt unbekannten Status 419 zurück: CSRF-Token-Problem wird gelöst

Frage:

Ich führe eine durch AJAX-Aufruf in Laravel 5.5, es wird jedoch der Fehler „419 (unbekannter Status)“ angezeigt. Obwohl auf meiner Seite keine Formulare vorhanden sind, vermute ich, dass das Problem beim CSRF-Token liegt. Wie kann ich das beheben?

Antwort:

Clientseitig:

Fügen Sie in Ihrem HTML-Kopfbereich das ein Folgendes:

<meta name="csrf-token" content="{{ csrf_token() }}">

Dadurch wird ein eindeutiges CSRF-Token generiert, das der Server zur Validierung eingehender Daten verwendet Anfragen.

AJAX-Anfrage:

Ändern Sie Ihre AJAX-Anfrage, um das CSRF-Token in die Header aufzunehmen:

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

Dadurch wird sichergestellt, dass der Server kann den Ursprung der Anfrage überprüfen und CSRF-Angriffe verhindern.

Laravel Middleware (Optional):

Laravel wendet automatisch die CSRF-Middleware an, um POST-Anfragen zu schützen. Um diese Middleware für bestimmte Routen zu deaktivieren (z. B. die, die Ihren AJAX-Aufruf verarbeitet), fügen Sie die folgenden Zeilen zu Ihrer AppHttpMiddlewareVerifyCsrfToken-Middleware hinzu:

/**
 * The URIs that should be excluded from CSRF verification.
 *
 * @var array
 */
protected $except = [
    '/fetch-company/*',
];

References:

  • [Laravel CSRF Schutz](https://laravel.com/docs/5.5/csrf)
  • [CSRF-Token für AJAX-Anfragen](https://laravel.com/docs/5.5/csrf#csrf-token-for -Ajax-Anfragen)

Das obige ist der detaillierte Inhalt vonLaravel 5.5 AJAX 419-Fehler: Wie behebt man CSRF-Token-Probleme?. 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