首页 > 解决方案 > Laravel 会话数据无法立即访问

问题描述

如果用户重新加载他们正在处理的页面,我一直在尝试将表单数据保存到会话中。

我当前的设置涉及来自“beforeunload”事件侦听器的 ajax 调用

window.addEventListener('beforeunload', leaving());

function leaving() { 
   axios.post('save-to-session', this.obj)
},

这确实在刷新时成功将数据发送到控制器,然后将其保存到会话

public function saveToSession()
{
    session()->put('data', request()->all());
    return response()->json();
} 

但是,如果我再次刷新页面并 dd() 会话,我的会话将显示为未更新。在第二次刷新同一页面时,会话更新而不启动“saveToSession”方法。

public function index()
{
    dd(session()->all());
} 

谁能弄清楚这种行为的根源,或者将数据保存到即时访问会话中的传统方法是什么?

SESSION_DRIVER=file
SESSION_LIFETIME=120

标签: phplaravelsessionsingle-page-applicationinertiajs

解决方案


推荐阅读