setcookie 不适用于 safari 和 firefox
setcookie not working on safari and firefox
我正在尝试为我的项目设置 cookie,但它在 Safari 或 Firefox 上不起作用。
不过我在 Google Chrome 上得到了结果。
这是我的代码:
setcookie('mycookiename', 'data', time()+60*60*24*365, '/', false);
print_r($_COOKIE['mycookiename']);
感谢您的帮助。
这段代码可以正常工作
setcookie("mycookiename", 'data', time()+60*60*24*365, "/", "", "", TRUE);
print_r($_COOKIE['mycookiename']);
对我来说是因为 ajax 和 fetch。
fetch 不会发送 cookie,除非您设置 credentials init 选项:
fetch(url, {
method: 'POST',
credentials: 'same-origin',
headers: {...},
...
});
此外,如果您正在执行跨源请求,您似乎也应该设置 Access-Control-Allow-Credentials: true
header。看到这个:
https://whosebug.com/a/40255834/4718434
有时我会遇到这个问题,当我使用小写的 Cookie 名称时,例如 "geoLoсationCode"。当我更改为大写 "GEO_LOCATION_CODE".
时,它适用于 Safari
我正在尝试为我的项目设置 cookie,但它在 Safari 或 Firefox 上不起作用。
不过我在 Google Chrome 上得到了结果。
这是我的代码:
setcookie('mycookiename', 'data', time()+60*60*24*365, '/', false);
print_r($_COOKIE['mycookiename']);
感谢您的帮助。
这段代码可以正常工作
setcookie("mycookiename", 'data', time()+60*60*24*365, "/", "", "", TRUE);
print_r($_COOKIE['mycookiename']);
对我来说是因为 ajax 和 fetch。
fetch 不会发送 cookie,除非您设置 credentials init 选项:
fetch(url, {
method: 'POST',
credentials: 'same-origin',
headers: {...},
...
});
此外,如果您正在执行跨源请求,您似乎也应该设置 Access-Control-Allow-Credentials: true
header。看到这个:
https://whosebug.com/a/40255834/4718434
有时我会遇到这个问题,当我使用小写的 Cookie 名称时,例如 "geoLoсationCode"。当我更改为大写 "GEO_LOCATION_CODE".
时,它适用于 Safari