yii2 cookie取不到的原因

yii2的cookie主要是通過yiiwebrequest和yiiwebresponse進行操作

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:myYiiDemovendoryiisoftyii2webRequest.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;),否則可能影響下面的邏輯。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享