当我登录时,我通过以下方式编写cookies
if (!$_COOKIE['email'] AND !$_COOKIE['project']) {
setcookie('email', $getParametrs['email'], time() + 3600);
setcookie('project', $getParametrs['caseid'], time() + 3600);
}
接下来,我发出一个 Ajax 请求,我有一个方法getAllUserDataByEmail
if($_COOKIE['email']) {
try {
// if email is not set then get email by logged in WP user
$where = implode(' OR ', [
CrmConnector::apiBuildCondition('contact', 'primaryEmail',
'=',
$_COOKIE['email']),
CrmConnector::apiBuildCondition('contact', 'secondaryEmail',
'=', $_COOKIE['email']),
]);
$crmContact = CrmConnector::apiQueryRecords('contact', $where);
return $crmContact;
} catch (\Exception $e) {
$this->activeProject = null;
}
return false;
}
cookie里面有个email,如果你只是做var_dump($_COOKIE),也有email,但是在ajax请求的时候看不到$_COOKIE['email'],请问是什么原因?
向 setcookie 添加第五个参数路径('/' - 服务器上的任何路径),它告诉浏览器从哪个目录 cookie 可用,解决了这个问题。 https://www.php.net/manual/en/function.setcookie.php