私は安らかなapiに慣れていません。問題、問題は次のとおりです。deleteメソッドを使用して破棄し、postメソッドを使用して保存すると、両方とも500エラーを返します。ただし、getメソッドを使用してインデックスを表示し、表示します。どちらも問題ありません。これが私のコードと要求です。
http://***.com/RestfulPrac/public/customers/10000001を削除します。
http://***.com/RestfulPrac/public/customers/10000001を取得します。
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");
Apacheへのアクセスログ: "DELETE / RestfulPrac / public / customers / 1000000001 HTTP / 1.0" 500 20246 " - " "Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(GeckoのようなKHTML)Chrome / 50.0.2661.102 Safari / 537.36"
Apacheのerror.log: [木6月02 09:09:24.324782 2016] [交渉:エラー] [pid 4328:tid 1676] [クライアント127.0.0.1:4940] var
laravel.log: 地元。エラー:F:PhpstormProjectsRestfulPracvendorlavelframeworksrcIlluminateFoundationHttpMiddlewareVerifyCsrfToken.phpの例外 "IlluminateSessionTokenMismatchException":67 スタックトレース:
誰かが私を助けることができるならば、私はそれを評価します!
回答:
回答№1は1Laravelエラーログに基づいて、あなたはcsrfを持っていますトークンが一致しません。もしあなたがAPIを構築しているなら、おそらく "web"ミドルウェアを使いたくないでしょう。そのミドルウェアグループはセッションを開始しており、READ(GET、HEAD、OPTIONS)HTTPメソッドを使用していないすべてのリクエストでcsrfトークンをチェックします。
デフォルトではLaravelはあなたのすべてのルートを routes.php
"web"ミドルウェアが適用されているルートグループ内(バージョンが5.2.27以上の場合) RouteServiceProvider
に appProviders
.
それはおそらくLaravelのエラーログに基づいて、どこから始めればよいでしょう。
これは役に立つかもしれません: APIミドルウェアLaravel 5.2.35にルーティングするときにVerifyCsrfTokenは常に呼び出されます
回答№2の場合は0
ただナビゲートする appkernel.php
コメントcsrfがいいね
protected $middlewareGroups = [
"web" => [
AppHttpMiddlewareEncryptCookies::class,
IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,
IlluminateSessionMiddlewareStartSession::class,
IlluminateViewMiddlewareShareErrorsFromSession::class,
// AppHttpMiddlewareVerifyCsrfToken::class,
],
"api" => [
"throttle:60,1",
],
];
あなたがAPIを構築しているならあなたはCSF保護を必要としません