我使用AJAX post请求来使用Laravel 5.4设置session值:
$.post('http://www.example.com/api/setSessionValue', {
"data": data
})public function setSessionValue() {
$data = Input::get('data');
// ...
Session::put('value', $data);
}但是,我的值从未在session中设置,也从未设置过,而是非持久性的。
我不明白为什么,因为我已经在我的Laravel项目中以同样的方式使用会话,而且它运行得很好。
编辑:
我忘了指定在开发模式(artisan serve)中,它运行得非常好。
发布于 2018-01-12 13:54:40
从外观上看,您很可能将API路由存储在routes/api.php文件中。该文件使用一组独立的中间件,这些中间件不维护状态(不使用StartSession中间件),因为API在设计上应该是无状态的。
如果必须的话,尝试将API路由移动到routes/web.php文件中,以查看它是否有效。如果是这样,您可以将以下中间件添加到app/http/kernel.php中的API中间件组中
\Illuminate\Session\Middleware\StartSession::class,https://stackoverflow.com/questions/48223245
复制相似问题