質問: ### 前提・実現したいこと PhpStormやPostManからPOSTでデータを送ろうとしています。 ※jsonデータを送り、Jsonデータを受け取ることを想定しています。 ### 発生している問題・エラーメッセージ Response Code419エラーが表示されてしまい、POSTが正常に送れません。 ### 該当のソースコード ``` // routes側 Route::post('/api/userdata/setid','UserDataController@setID'); // Controller側 public function setID(Request $request) { // エラーがでないことを確認するために、最低限のコードに修正 return ['success' => false]; } ``` ### 試したこと PostManやPhpStormで送信する際、 Content-Type:application/json Accept:application/json をヘッダーに設定しています。 ※なお、routesを下記のようにgetにした場合はエラーが発生しませんでした。 Route::get('/api/uuserdata/setuid','UUserDataController@setUID'); ### 補足情報(言語/FW/ツール等のバージョンなど) FW:Laravel5.5 言語:PHP7.1 IDE:PhpStorm2017.2
回答: postでエラーになる場合は、CSRFエラーが適用されていることが考えられます Laravel 5.5 CSRF保護 Illuminate\Foundation\Exceptions\Handler.php でもCSRFトークンエラーの場合は、419エラーになるみたいなのでこれだと思います。 ``` protected function prepareException(Exception $e){ if(省略){ } elseif ($e instanceof TokenMismatchException) { $e = new HttpException(419, $e->getMessage()); } } ``` デバッグ時の対応としては、送信データにcsrfトークンを追加するか、App\Http\Kernel.phpのVerifyCsrfTokenをひとまず無効にするなどしてみてください