我制作了一个名为auth的过滤器,用于检查用户是否已登录。如果没有记录它在主页面上重定向,但如果是一个调用Ajax?我只是检查是否。如果是我只是发送一个JSON状态“无日志”。现在我的客户端收到了我的json响应“no-log”,并且我想为请求登录名和密码打开一个模式。我认为的解决方案很容易为每个ajax请求一个if语句来检查响应状态是否为“no-log”并显示模态函数。但是课程对未来的更新并不好,我正在寻找一个很好的解决方案,我可以绑定这个事件,如果我想在将来添加其他状态。任何建议?登录后会发生绑定事件
Route::filter('auth', function()
{
if (Auth::guest()) {
if (!Request::ajax()) {
Session::put('loginRedirect', Request::url());
return Redirect::to('/');
} else {
$status = "no-log";
return json_encode(array('status' => $status));
}
}
});
如果返回所有没有的loggedIn请求401呼叫AJAX
$(document).on("click", ".delete", function() { // delete POST shared
var id_post = $(this);
bootbox.confirm("Are you sure do want delete?", function(result) {
if (result) {
$.ajax({
type: "POST",
url: '/delete_post/' + USER,
data: { id_post: id_post.attr('id') },
beforeSend: function(request) {
return request.setRequestHeader("X-CSRF-Token", $("meta[name='token']").attr('content'));
},
success: function(response) {
if (response.status == "success") {
id_post.parents('div.shared_box').fadeOut();
}
},
error: function(){
alert('error ajax');
}
});
} else {
console.log("close");
}
});
});
为什么你说这不是一个好的解决方案,以供将来更新? – Fractaliste
,因为我有更多的时间在我的应用程序上调用ajax,我应该将检查放在每个函数中?我希望有一些快速解决方案。 – Fabrizio
我不知道Javascript中是否存在“过滤器”的概念。当然,如果你使用Ajax API,你可以重写它的一个回调函数。你可以在这里发布你的基本Ajax调用吗? – Fractaliste