Yii2的Cookie主要是透過yii\web\Request和yii\web\Response進行操作
透過\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中文網其他相關文章!