我有一个使用vue的Laravel 9应用程序。我在vue组件中广泛使用 AJAX 调用(通过jQuery)来获取所需的数据。我还使用一个Javascript计时器(setInterval)来进行Ajax调用以获取更新的通知数据。这是我的典型Ajax调用
$.ajax({
url: "/user/currentUserInfoAndNotifications",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
},
method: "post",
data: {
...
},
dataType: "json",
success: function (data) {
// data received
....
}
}.bind(this),
error: function (data) {
// may happen due to session timeout or other situations..
// How to detect??
}.bind(this),
});
定时器每分钟可以调用一次 AJAX 调用,同时会话超时,调用失败。
我的问题是如何检测 AJAX 调用中的超时或其他错误条件。
此外,由于我的应用程序有100个 AJAX 调用,我希望我能在一个中心位置检测到这种情况,例如routes/web.php(我所有的路由都包含在这个文件中),这样当ajax进行调用,它来到routes/web.php,我可以检测会话超时情况,注销用户,并将用户重定向到会话超时页面。
1条答案
按热度按时间68bkxrlz1#
您需要像这样修改
error
回调函数:注:每次发送请求来显示通知是一种不切实际的方法,因为它可能不会导致通知在发生时立即显示。您可以通过阅读更多关于Laravel Event Broadcasting with Socket.io and Redis Example的信息来改进您处理通知的方式。