我正在使用演示应用 PingCRM 来了解 Inertia.js 的工作原理。
当用户单击主菜单项(例如组织或联系人)时,XHR 会发送到相应的 URL /organizations
,/contacts
如预期的那样。如果我使用页面底部的分页链接,它们会按预期发送诸如/contacts?page=1
,之类的请求。/contacts?page=2
但是,如果我离开该部分,然后返回,服务器会以某种方式知道我访问了哪个页面并返回重定向。例如,如果我正在浏览/contacts?page=3
,那么我选择主菜单项组织,它会请求/organizations
(如预期的那样)。但是,当我下一次选择联系人时,它会发送一个/contacts
(如预期的那样),但会收到一个 302,其位置设置为/contacts?page=3
.
这个功能是如何工作的?Laravel 会话是否存储了我的状态,这是否是 Inertia 后端适配器的一部分?还是将状态存储在浏览器中并在 cookie 中传递给服务器?在 Intertia.js 文档中哪里可以找到详细信息?(本地状态部分似乎更多地与浏览器历史相关)。
我注意到过滤组织时存在类似的情况。如果您在使用过滤器时离开该页面,则返回该页面,请求/organizations
接收 302,位置为/organizations?search=abc
.