如何使用Laravel在AJAX POST请求中读取和写入会话数据?

时间:2015-03-01 22:17:26

标签: php ajax http session laravel

我有一个在后台工作的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。但是,如果他们仍然在网站上离开页面,我需要它重定向到特定页面。

我打算这样做的方法如下。

  1. 设置会话密钥' void'在ajaxTest控制器操作中为true
  2. 在路径文件中抓取该会话密钥并检查其值,如果为true,则使用void route。
  3. 问题是它永远不会进入if语句,因为会话数据带有键' void'不存在,我也不知道为什么。

      if(Session::has('void') and (Session::get('void') == true)) {
          return Redirect::route('void');
      }   
    

0 个答案:

没有答案