HTTP-PATCH- und PUT-Anfragen mit FormData in Laravel
In Laravel RESTful-Anwendungen kommt es häufig vor, dass PATCH- und PUT-Anfragen nicht abgerufen werden können Daten beim Senden von Postman unter Verwendung von Formulardaten.
Das Problem
Bei Verwendung von Formulardaten gibt die Methode $request->all() ein leeres Array zurück für PATCH- und PUT-Anfragen. Dadurch wird verhindert, dass das Backend die erwarteten Parameter empfängt.
Lösung
Um dieses Problem zu beheben, wird eine Problemumgehung eingesetzt, indem die PUT- oder PATCH-Anfrage in eine POST-Anfrage umgewandelt wird Postman:
Durch die Änderung des Anfragetyps in Postman werden die Daten trotzdem erfolgreich als POST-Anfrage gesendet es wird als PATCH- oder PUT-Anfrage weitergeleitet.
Beispiel
Für eine POST-Anfrage mit über Formulardaten gesendeten Daten:
Route::post('testimonials/{testimonial}', 'TestimonialController@update');
Bei Verwendung von PATCH oder PUT mit Formulardaten in Postman:
// Request will be received as a POST request Route::patch('testimonials/{testimonial}', 'TestimonialController@update'); Route::put('testimonials/{testimonial}', 'TestimonialController@update');
Hinweis:
Diese Problemumgehung entspricht möglicherweise nicht den RESTful-Prinzipien, da sie die effektiv ändert Anfragetyp an POST senden. Es bietet jedoch eine funktionale Lösung für die Datenübertragung über Formulardaten mit PATCH- und PUT-Anfragen.
Das obige ist der detaillierte Inhalt von**Warum schlagen PATCH- und PUT-Anfragen mit FormData in Laravel fehl?**. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!