yii2的cookie主要是通過yiiwebrequest和yiiwebresponse進行操作
通過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