Abd*_*aly 72 cookies http http-status-code-302
在302重定向期间发回cookie是否有任何问题?例如,如果我创建一个return-to-url cookie并在同一个响应中重定向用户,那么任何(现代)浏览器都会忽略cookie吗?
gav*_*koa 45
根据这篇博文:http://blog.dubbelboer.com/2012/11/25/302-cookie.html所有主流浏览器,IE(6,7,8,9,10),FF(17),Safari (6.0.2),Opera(12.11)在Windows和Mac上,在重定向上设置cookie.301和302重定向都是如此.
reg*_*ero 34
大多数浏览器都接受302重定向的cookie.我很确定,但我做了一点搜索.并非所有现代浏览器. Internet存档从Silverlight客户端HTTP堆栈上的已删除/死/ 微软连接 Q/A 链接忽略302重定向响应上的Set-Cookie(2010)
我想我们现在可以替代IE6和它的Windows Mobile浏览器......
Mic*_*čík 31
一个通知(为了节省开发人员的生命):
当cookie的域是localhost时,IE和Edge忽略重定向响应中的Set-Cookie .
解:
使用127.0.0.1而不是localhost.
Voj*_*tek 25
我们最近(2022 年 3 月)遇到了这个问题 - Firefox 和 Chrome 都没有立即在 HTTP 302 重定向上设置 cookie。
细节:
我们必须通过客户端重定向来提供 HTTP 200 来解决这个问题:
<!DOCTYPE html>
<html>
<head><meta http-equiv="refresh" content="0; url='REDIRECT_URL'"></head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是一种非常令人讨厌的方法,但如果您真的不想依赖 30x set-cookie 浏览器行为,您可以meta http-equiv="refresh"在设置 cookie 时使用 HTML “重定向”。例如,在 PHP 中:
<?php
...
setcookie("cookie", "value", ...);
url="page.php";
?>
<html>
<head><meta http-equiv="refresh" content=1;url="<?=$url?>"></head>
<body><a href="<?=$url?>">Continue...</a></body>
</html>
Run Code Online (Sandbox Code Playgroud)
服务器将发送带有 200 的 Set-Cookie 而不是正确的 300x 重定向,因此浏览器将存储 cookie,然后执行“重定向”。<a>如果浏览器不执行元刷新,该链接是后备。
我刚刚在 Firefox 和 Safari 上都遇到了这个问题,但在 Chrome 上没有。根据我的测试,这仅在重定向期间域发生更改时发生。这在 OAuth2 流程中很典型:
由于我还没有弄清楚的原因,请求 2 中的一些 cookie 被忽略,而另一些则没有。但是,如果请求 2 返回带有Refresh标头的 HTTP 200 (“元刷新”重定向),则请求 3 会正确设置 cookie。
| 归档时间: |
|
| 查看次数: |
66081 次 |
| 最近记录: |