Heim > Artikel > Backend-Entwicklung > Warum erhalte ich in meinen Laravel Ajax-Anfragen einen POST-Fehler 419?
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!