我有一个在后台工作的AJAX帖子,这个帖子请求运行一个Laravel Controller操作,从表中删除一些数据,它还设置一些Session数据。此会话数据是名为void的键,值为true。
public function ajaxTest() {
$flag = Input::get('quit');
if(isset($flag)) {
// Roll back transaction table
DB::table('mrt_marking_transaction')->where('mrt_marking_transaction_id', Session::get('transactionID'))->delete();
// Then roll back transaction details table
DB::table('mra_marking_transaction_answers')->where('mra_marking_transaction_id', Session::get('transactionID'))->delete();
}
Session::put('void', true);
return Response::json(['flag' => $flag,'sent' => true]);
}
只有当前页面执行window.unload时才会发生post请求。因此,如果用户导航离开当前页面,则发生对该控制器动作的POST。但是,如果他们仍然在网站上离开页面,我需要它重定向到特定页面。
我打算这样做的方法如下。
问题是它永远不会进入if语句,因为会话数据带有键' void'不存在,我也不知道为什么。
if(Session::has('void') and (Session::get('void') == true)) {
return Redirect::route('void');
}