Laravel 4.2 - 禁用选项响应的设置cookie标头



我有一个用Laravel构建的无状态API。 我使用以下过滤器来防止 Set-Cookie 标头在所有请求上被发送回请求者:

Route::filter('auth.firewall', function(){
    Config::set('session.driver', 'array');
});

我的 API 是从与其托管的子域不同的子域调用的,并且在任何 RESTful 请求之前从客户端发送 OPTIONS 请求。 在响应这些 OPTIONS 请求时,Laravel仍在发送 Set-Cookie 标头。

如何禁用选项请求的 Set-Cookie 标头? 我想只禁用API的Set-Cookie,而不是整个Laravel应用程序,因为我有一个网站运行同一个Laravel应用程序并使用Laravel的会话功能。

这是我的标题设置当前的样子:

App::before(function(){
    // Allow CORS requests
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
    header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Request-With, userToken, user_token');
    header('Access-Control-Allow-Credentials: true');
});

我在App:before注册的回调函数中添加了一个$request->getMethod()。 如果请求是 OPTIONS 请求,我将会话驱动程序设置为数组。

App::before(function($request){
    // Allow CORS requests
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
    header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Request-With, userToken, user_token');
    header('Access-Control-Allow-Credentials: true');
    if($request->getMethod() == 'OPTIONS'){
        Config::set('session.driver', 'array');
    }
});

最新更新