gpt4 book ai didi

laravel-5 - 响应 json 时禁用 "Cookie" header

转载 作者:行者123 更新时间:2023-12-02 22:53:53 27 4
gpt4 key购买 nike

我想在以 json 形式响应时禁用(删除)“Cookie” header 。其实我可以设置Config::set('session.driver', 'array')使用 Laravel 4.2 进行过滤。

如果我在 L5(版本 5.0.5)中这样做,我会在日志文件中收到以下错误。

[YYYY-MM-DD ..:..:..] local.ERROR: exception 'ErrorException' with message 'Undefined index: _sf2_meta' in /foo/bar/vendor/laravel/framework/src/Illuminate/Session/Store.php:280
Stack trace:
#0 /foo/bar/vendor/laravel/framework/src/Illuminate/Session/Store.php(280): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined index...', '/foo/bar/ve...', 280, Array)
#1 /foo/bar/vendor/laravel/framework/src/Illuminate/Session/Store.php(251): Illuminate\Session\Store->addBagDataToSession()
#2 /foo/bar/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(89): Illuminate\Session\Store->save()
#3 /foo/bar/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(129): Illuminate\Session\Middleware\StartSession->terminate(Object(Illuminate\Http\Request), Object(Illuminate\Http\JsonResponse))
#4 /foo/bar/public/index.php(57): Illuminate\Foundation\Http\Kernel->terminate(Object(Illuminate\Http\Request), Object(Illuminate\Http\JsonResponse))
#5 {main}

最佳答案

好吧,事实证明,不再可能在路由中间件内更改 session /cookie 驱动程序。您必须在 Illuminate\Session\Middleware\StartSession 中间件之前指定中间件。

解决方案:1. 创建自己的中间件:

class ApiSession implements Middleware{
public function handle($request, Closure $next){
$path = $request->getPathInfo();

if(strpos($path, '/api/') === 0){
\Config::set('session.driver', 'array');
\Config::set('cookie.driver', 'array');
}

return $next($request);
}
}
  • 将其添加到 session 中间件之前的内核文件(app/Http/Kernel.php)中:
  • [..]
    ApiSession::class,//检查是否有 API 请求。如果是这样,设置 session 、cookie 驱动程序
    Illuminate\Session\Middleware\StartSession::class,
    [..]

    不好的部分是你不能将它与路由组一起使用。您必须通过检查当前的 url 路径来自行检查是否应用了此中间件。

    关于laravel-5 - 响应 json 时禁用 "Cookie" header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28624807/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com