2016-08-01 49 views
0

嘿,我对发布请求的设置会话有问题。例如,请求正常工作。我已经试图在发布请求后重定向,但这不起作用。有我的代码的部分;Silex - 不能使用发布请求上的会话

不工作:

$app->post(
    '/localauth', 
    'UserController::serviceLoginAuth' 
) 
->after(
    function() { 
     session_name('auth') 
     session_start(); 
    } 
); 

只工作不重定向serviceLoginAuth:

// redirect to '/authsuccess'  
$app->post('/localauth', 'UserController::serviceLoginAuth'); 
$app->get('/authsuccess', 'UserController::serviceLoginAuthSuccess'); 

我使用HTTP POST,但角码:

 $http({ 
     url: apiConst.apiurl+'/localauth', 
     method: "POST", 
     data: $.param({ 
     login: user.login, 
     pass:user.pass 
     }), 
     headers: { 
     'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' 
     } 
    }).then(function(response){ 
     console.log(response); 
     $cookies.put('csrftoken',response.data.token); 
    }).catch(function(){ 
     console.log(err); 
    }); 

感谢您的帮助!

+0

您是否收到任何错误? – Andy

+0

没有这个标题即时通讯http代码405和选项错误。但是这个头文件修复了这个错误,但是我不能在发布后发送会话。 –

回答

0

为什么不使用silex SessionServiceProvider

问题可能是您使用->after而不是->before在中间件上调用session_start?

+0

是的,我已经尝试过没有效果。与已尝试的SessionServiceProvider相同。 $ app-> get()完美工作,但post()有一些问题。 –

+0

所以你试图从$ app-> get('/ authsuccess')重定向到$ app-> post('/ localauth')? – Slico

+0

不,我试图从$ app-> post('localauth')重定向到$ app-> get('authsuccess'),我仍然不能通过会话。只有当我去严格'authsuccess'然后会话被注册。 –