使用AJAX时会话不会持久

时间:2018-01-12 09:33:04

标签: jquery ajax laravel laravel-5.4

我正在使用AJAX post请求将session值设置为Laravel 5.4

$.post('http://www.example.com/api/setSessionValue', {
  "data": data
})
public function setSessionValue() {
    $data = Input::get('data');
    // ...
    Session::put('value', $data);
}

但是我的值永远不会在session中设置,或者设置为非持久性。

我无法理解为什么因为我已经在我的Laravel项目中以相同的方式使用会话,并且它工作正常。

修改

我忘了在开发模式(artisan serve)中指定它,它的工作非常好。

1 个答案:

答案 0 :(得分:0)

从外观上看,您最有可能将API路线存储在 routes / api.php 文件中。该文件使用一组不保持状态的中间件(不使用StartSession中间件),因为设计的API应该是无状态的。

如果必须,请尝试将API路线移至 routes / web.php 文件中以查看其是否有效。如果是,您可以将以下中间件添加到 app / http / kernel.php

中的API中间件组
 \Illuminate\Session\Middleware\StartSession::class,