Ich bin neu in erholsamen api, und ich traf einProblem, Problem ist: Wenn ich die Zerstörung mit der Löschmethode und das Speichern mit der Postmethode anfordere, werden beide 500 Fehler zurückgeben. Hier ist meine Codes und Anfrage:
Löschen Sie http: //***.com/RestfulPrac/public/customers/10000001
Holen Sie sich http: //***.com/RestfulPrac/public/customers/10000001
post http: //***.com/RestfulPrac/public/customers
class CustomersController extends Controller
{
public function index(){
$customersInfo = customers::all();
return $customersInfo;
}
public function show($cust_id){
$customer = customers::where("cust_id",$cust_id)->first();
return $customer;
}
public function store()
{
echo "store";
}
public function destroy()
{
return "success";
}
}
Route::resource("customers","CustomersController");
Der Apache-Zugriff.log: "DELETE / RestfulPrac / public / customers / 1000000001 HTTP / 1.0" 500 20246 - "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 50.0.2661.102 Safari / 537.36"
Das apache error.log: [Do 02. Juni 09: 09: 24.324782 2016] [Verhandlung: Fehler] [PID 4328: TID 1676] [Client 127.0.0.1:4940] AH00690: Keine akzeptable Variante: D: /XAMPP/apache/error/HTTP_NOT_FOUND.html. var
Der laravel.log: lokal.FEHLER: Ausnahme "IlluminateSessionTokenMismatchException" in F: PhpstormProjectsRestfulPracvendorlaravelframeworksrcIlluminateFoundationHttpMiddlewareVerifyCsrfToken.php: 67 Stack-Trace:
wenn jemand mir helfen kann, würde ich es schätzen! Danke im Voraus!
Antworten:
1 für die Antwort № 1Basierend auf dem Laravel-Fehlerprotokoll haben Sie einen CSRFToken stimmt nicht überein. Wenn Sie eine API erstellen, möchten Sie wahrscheinlich nicht die Middleware "Web" verwenden. Diese Middlewaregruppe startet eine Sitzung und überprüft alle Anforderungen, die nicht die HTTP-Methoden READ (GET, HEAD, OPTIONS) verwenden, auf ein csrf-Token.
Standardmäßig fügt Laravel alle Ihre Routen ein routes.php
in einer Routengruppe mit der angewendeten "Web" - Middleware (wenn auf Version> = 5.2.27), wenn sie in Ihre geladen wird RouteServiceProvider
im appProviders
.
Das wäre wahrscheinlich der Anfang, basierend auf dem Laravel-Fehlerprotokoll.
Dies kann hilfreich sein: VerifyCsrfToken wird beim Weiterleiten an API Middleware Laravel 5.2.35 immer aufgerufen
0 für die Antwort № 2
navigiere einfach zu appkernel.php
Kommentar csrf wie folgt
protected $middlewareGroups = [
"web" => [
AppHttpMiddlewareEncryptCookies::class,
IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,
IlluminateSessionMiddlewareStartSession::class,
IlluminateViewMiddlewareShareErrorsFromSession::class,
// AppHttpMiddlewareVerifyCsrfToken::class,
],
"api" => [
"throttle:60,1",
],
];
Sie benötigen keinen CSRF-Schutz, wenn Sie eine API erstellen