首頁 >php框架 >YII >yii2 cookie取不到的原因

yii2 cookie取不到的原因

(*-*)浩
(*-*)浩原創
2019-11-05 11:55:483217瀏覽

Yii2的Cookie主要是透過yii\web\Request和yii\web\Response進行操作

yii2 cookie取不到的原因

透過\Yii::$app->response->getCookies()->add()新增Cookie

透過\Yii::$app->request->cookies讀取Cookie.   (推薦學習:yii教學

在js中建立的cookie,預設用yii2中自帶的方法Yii::$app->request->cookies- >get('abc')取得不到,而用$_COOKIE['abc']又是能取得到,則是以下原因照成的。

查看E:\myYiiDemo\vendor\yiisoft\yii2\web\Request.php中的1218行不難看出,使用yii2中的方法取得cookie的時候,會讀取cookieValidationKey中的字符串來解密(存cookie的時候也會用它來加密)。

由於js並沒有對cookie加密,所以這裡解不開,自然取得不到cookie了。

解決方法可以將enableCookieValidation設定為false,具體操作如下:

Yii::$app->request->enableCookieValidation = false;
Yii::$app->request->cookies->get('abc');

溫馨提示:

#用完後記得恢復回來(Yii::$app->request->enableCookieValidation = true;),否則可能會影響下面的邏輯。

以上是yii2 cookie取不到的原因的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn