Php 在处理程序中处理Laravel Ajax会话超时重定向

Php 在处理程序中处理Laravel Ajax会话超时重定向,php,ajax,laravel,Php,Ajax,Laravel,当会话超时时,我尝试在我最初离开的同一页面上启动ajax调用,我正确地捕获了令牌失配异常并将其重定向到登录页面。现在的问题是,重定向发生在内部,而不是视觉上。如果chrome中的开发者工具是打开的,我可以看到控制或路由转移到登录页面,但在页面上不可见,它仍然保持原来的页面。手动重新加载页面或单击任何链接时,页面会明显转到登录页面并显示会话超时。如何在Handler.php中全局重定向AJAX if($exception instanceof TokenMismatchException){

当会话超时时,我尝试在我最初离开的同一页面上启动ajax调用,我正确地捕获了令牌失配异常并将其重定向到登录页面。现在的问题是,重定向发生在内部,而不是视觉上。如果chrome中的开发者工具是打开的,我可以看到控制或路由转移到登录页面,但在页面上不可见,它仍然保持原来的页面。手动重新加载页面或单击任何链接时,页面会明显转到登录页面并显示会话超时。如何在Handler.php中全局重定向AJAX

if($exception instanceof TokenMismatchException){
  return redirect('/login')->with('alert_error','Session Expired! Login to continue');
}

请尝试
Postman
并禁用设置中的
自动跟踪重定向
,以查看到底发生了什么。

我没有寻找API调用。邮递员只会帮我得到回复。在这里,我手动传递控件以登录。我不能在Postman中这样说。我想知道的是,如果在Handler.php中捕获到ajax会话超时,是否通常不加载页面?我认为ajax调用遵循重定向并返回登录页面。如果要重定向浏览器,请尝试window.location。像这样:[使用成功的Ajax请求进行页面重定向]()我很感激您的逻辑,这是非常正确的,上面的方法可以工作,但唯一的问题是,我需要在整个项目的所有Ajax调用中包含它。正在寻找一个全局位置,在那里它可以执行ajax调用,虽然Handler.php本来是执行代码的好地方,但是window.location在php脚本文件中没有帮助。使用Laravel auth中间件,检查会话并进行重定向。我认为没有必要在ajax调用上重定向用户。我们可以返回一条消息,通知用户他的身份验证已过期。当用户执行某个操作(刷新、单击按钮、发布数据)时,是时候将其重定向到登录页面了。