在使用ajax时如何处理laravel中的重定向



我在laravel中使用ajax

我使用自定义请求以及用于身份验证的自定义中间件

如你所知,如果用户未登录,我的身份验证中间件将重定向用户

但是当我使用ajax时,我不知道如何处理这种情况我写的这个jquery函数可以正常工作

function addBasket(url) {
var formData = {
product_id: $("#addbasket").attr('value')
}
$.ajax({
data: formData,
url: url,
type: 'POST',
dataType: 'json',
success: function (data) {
data.forEach(el => {
$("#count").text(el.count)
})
console.log(data);
},
error: function (error) {
alert('fail')
console.log(error)
}
})
}
如果用户登录,上面的代码将发送请求但有时当用户没有登录时,显然它会得到日志错误,我不知道如何捕获它并处理它

任何帮助我都很感激

如果ajax抛出任何错误,您可以简单地重定向:

error: function(xhr, status, error) {
window.location = '/login';
}

可以指定错误码:

error: function(xhr, status, error) {
if (xhr.status == 401) {
window.location = '/login';
} elseif (xhr.status == 419) {
window.location = '/';
}
}

如果你的js代码在刀片文件重定向到你的特定路由

...
error: function (error) {
location.replace("{{ route('your_route_name') }}")
}

最新更新