作者:可乐加芬达61158 | 来源:互联网 | 2018-05-13 17:43
使用js设置的COOKIE,通过yii的
$COOKIEs=Yii::$app->request->COOKIEs;
$COOKIEs['name']->value;
无法读取,但是使用$_COOKIE变量可以读取,不知道是怎么回事?
回复内容:
使用js设置的COOKIE,通过yii的
$COOKIEs=Yii::$app->request->COOKIEs;
$COOKIEs['name']->value;
无法读取,但是使用$_COOKIE变量可以读取,不知道是怎么回事?
Yii2 在加载COOKIEs的时候会校验COOKIEs是否合法,不合法的COOKIEs不会载入到COOKIEs这个只读属性里面
Yii2 对 COOKIE 的设置和读取有加解密的过程,你用 js 设置的 COOKIE 没有加密,Yii2 读取到之后,发现这个 COOKIE 不合法,所以你用 Yii::$app->request->COOKIEs 无法读取到,而 $_COOKIE 可以读取到。对于这种情况,你就直接使用 $_COOKIE['name'] 吧。
深入了解可以看一下 yii\web\Request::$COOKIEValidationKey 这个属性。