Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich in meinen Laravel Ajax-Anfragen einen POST-Fehler 419?

Warum erhalte ich in meinen Laravel Ajax-Anfragen einen POST-Fehler 419?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 02:16:02525Durchsuche

Why Am I Getting a 419 POST Error in My Laravel Ajax Requests?

Ajax Laravel 419 POST-Fehler verstehen und beheben

Der Laravel 419 POST-Fehler ist ein häufiges Problem, das bei Ajax-Anfragen auftritt. Es tritt aufgrund fehlender CSRF-Schutztokens (Cross-Site Request Forgery) im Anforderungsheader auf. Laravel implementiert standardmäßig den CSRF-Schutz, um böswillige Anfragen von externen Quellen zu verhindern.

Ursache des 419-Fehlers

Laravel generiert für jede aktive Benutzersitzung ein eindeutiges CSRF-Token. Mit diesem Token wird überprüft, ob der authentifizierte Benutzer derjenige ist, der die Anfrage stellt. Wenn die Anfrage nicht das richtige CSRF-Token enthält, gibt Laravel einen 419-Fehler zurück.

Ajax-Aufrufkonfiguration

Im bereitgestellten Ajax-Aufruf wird der X-CSRF- Der TOKEN-Header fehlt. Fügen Sie diese Zeile zu Ihrem Ajax-Aufruf-Setup hinzu, um das Token in jede Anfrage einzuschließen:

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

Dadurch wird sichergestellt, dass das CSRF-Token in jeder Ajax-Anfrage enthalten ist, sodass es mit dem CSRF-Schutz von Laravel kompatibel ist.

Alternative Lösung: Routen von der CSRF-Verifizierung ausschließen

Alternativ können Sie bestimmte Routen von der CSRF-Token-Verifizierung in der VerifyCSRFToken-Middleware ausschließen. Fügen Sie in app/Http/Kernel.php die gewünschten Routen zur Eigenschaft $exclusive hinzu:

<code class="php">protected $except = [
    '/route_you_want_to_ignore',
    '/route_group/*
];</code>

Dadurch werden die angegebenen Routen von der CSRF-Token-Überprüfung ausgenommen, sodass sie den 419-Fehler für Ajax-Anfragen umgehen können.

Fazit

Durch Einschließen des CSRF-Tokens in die Ajax-Anfrage oder Ausschließen der Route von der CSRF-Überprüfung können Sie den Ajax Laravel 419 POST-Fehler effektiv beheben und die Integrität sicherstellen der Anfragen Ihrer Bewerbung.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinen Laravel Ajax-Anfragen einen POST-Fehler 419?. 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