【问题标题】:Set a Laravel 7 Cookie From API Request从 API 请求设置 Laravel 7 Cookie
【发布时间】:2020-08-09 08:28:59
【问题描述】:

我在通过 API 请求设置 cookie 或会话时遇到问题,我尝试使用 web 中间件并尝试将路由移动到 web 文件夹,但没有任何效果。 我的路线:web.php

Route::get('api/add-item-to-cart' ,'CartController@addItem')->name('cart.add');

我的控制器:CartController@addItem

setcookie('name','value');
$CartData['user_id'] = Cookie::get('guest_id');
//Always Returns Null

Die and Dump Cookie::get() 返回:

array:7 [▼
  "fdsfsda" => null
  "name" => "value"
  "token" => null
  "guest_id" => null
  "XSRF-TOKEN" => "JwqisWA0rMCLnFmBitqK8Va0lXwCMjP7A2Ks2Bi1"
  "uk_fashion_shop_session" => "ngMrvLmPQZ8SrfnonA9pVLFID05OIk1Su0hOIUrZ"
  "io" => null
]

所以 cookie 实际上正在设置,但没有值 注意: Cookie 正在设置,但由于某种原因没有为其分配值,但是当我使用 laravel 方式时,cookie 甚至没有设置
//Cookie::queue(Cookie::make('guest_id', md5(rand(1,500))));根本没有设置任何东西
我的会话文件是默认的

【问题讨论】:

    标签: php laravel cookies


    【解决方案1】:

    我不确定为什么您的 cookie 没有设置。但要确保这是严格的 laravel 问题,可能缺少依赖项,请指定有关 cookie 的适当详细信息,例如使用 response API

    return response('Hello World')->cookie(
        'name', 'value', $minutes, $path, $domain, $secure, $httpOnly
    );
    

    请确保,您设置的过期日期大于当前时间戳(否则它将几乎立即过期),将域设置为您的域(指定 DNS)和路径,例如用于测试目的的全局 /

    更新 您还可以在浏览器中调试 cookie。

    在 Mozilla CTRL+SHIFT+I --> 数据 --> Cookies

    之后,您可以查看浏览器存储的所有 cookie。

    【讨论】:

      猜你喜欢
      • 2016-06-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 2014-02-08
      • 2016-07-21
      相关资源
      最近更新 更多