###前提・実現したいこと
ajaxを使ってPOSTされたcookie情報を受け取ることができません。
かつ上記のバグが発生しているのがローカル環境のみとなっております。
###発生している問題・エラーメッセージ
404エラーが返ってきます。
Sorry, the page you are looking for could not be found.
###該当のソースコード
php
1PublicController.php 2const SESSION_KEY = 'aa'; 3const TYPE_KEY = 'a_type'; 4const STAGE_KEY = 'a_stage'; 5 6public $id = null; 7 8public function __construct() 9{ 10 $this->beforeFilter(function($route, $request) 11 { 12 $session = $request->session()->get(self::SESSION_KEY); 13 if ($session) { 14 $this->id = (int)$session; 15 } elseif(($token = $request->cookie(self::SESSION_KEY)) && (($id = Cookie::findByToken($token, self::SESSION_KEY)) !== NULL)) { 16 $this->id = (int)$id; 17 $request->session()->put(self::SESSION_KEY, (int)$id); 18 } 19 }); 20 } 21public function post() { 22}
php
1Models/Cookie.php 2public static function findByToken($token, $type) { 3 $cookie = self::select('id', 'type', 'uid')->where('token', $token)->first(); 4 if (!$cookie) { 5 \Cookie::forget($type); 6 return null; 7 } 8 if (!starts_with($cookie['type'], $type)) { 9 self::where('id', $cookie['id'])->delete(); 10 \Cookie::forget($type); 11 return null; 12 } 13 $type = substr($cookie['type'], strlen($type)); 14 if ($type) { 15 return [ 16 'type' => substr($type, 1), 17 'id' => $cookie['uid'], 18 ]; 19 } else { 20 return $cookie['uid']; 21 } 22}
Controller.php public function beforeFilter($filter, array $options = []) { $this->beforeFilters[] = $this->parseFilter($filter, $options); }
###試したこと
ローカルでのみ生じているバグですので、コードに問題はないと考えておりますので、コードでの変更は特に加えておりません。
php.iniの修正(memory_limitなど)
###補足情報(言語/FW/ツール等のバージョンなど)
laravel5.1、php7、xampp、eclipseを使用しております。
###更新①
php.iniの更新箇所
session.use_cookies = 1
session.use_only_cookies = 0
session.auto_start = 1
session.cookie_path = /
session.cookie_httponly = 1
session.gc_maxlifetime = 1440
###更新②
NotFoundHttpException in Application.php line 879: in Application.php line 879 at Application->abort('404') in PublicController.php line 155 at PublicController->post() at call_user_func_array(array(object(PublicController), 'post'), array()) in Controller.php line 256 at Controller->callAction('post', array()) in ControllerDispatcher.php line 164 at ControllerDispatcher->call(object(PublicController), object(Route), 'post') in ControllerDispatcher.php line 112 at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102 at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 114 at ControllerDispatcher->callWithinStack(object(PublicController), object(Route), object(Request), 'post') in ControllerDispatcher.php line 67 at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\PublicController', 'post') in Route.php line 203 at Route->runWithCustomDispatcher(object(Request)) in Route.php line 134 at Route->run(object(Request)) in Router.php line 708 at Router->Illuminate\Routing\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102 at Pipeline->then(object(Closure)) in Router.php line 710 at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 673 at Router->dispatchToRoute(object(Request)) in Router.php line 635 at Router->dispatch(object(Request)) in Kernel.php line 236 at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 50 at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 36 at VerifyCsrfToken->handle(object(Request), object(Closure)) at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 at ShareErrorsFromSession->handle(object(Request), object(Closure)) at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62 at StartSession->handle(object(Request), object(Closure)) at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59 at EncryptCookies->handle(object(Request), object(Closure)) at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 at CheckForMaintenanceMode->handle(object(Request), object(Closure)) at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102 at Pipeline->then(object(Closure)) in Kernel.php line 122 at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87 at Kernel->handle(object(Request)) in index.php line 53
上記くらいだったかと記憶しています。
わかりにくいところが多々あるかと思いますが、何卒よろしくお願いいたします。