文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>google chrome 下django用户登录失败的问题

google chrome 下django用户登录失败的问题

时间:2011-04-29  来源:251

问题:

django做的网站,用chrome访问时,有50%的概率会发生用户登录失败,request.user依然是匿名用户的情况。Firefox没问题。

分析:

痛苦了半天,静下心分析原因,发现最后页面在登录重定位后,chrome在请求页面时没有提交session。具体的访问过程是这样:

1   /accounts/login/        返回 302 FOUND,响应头中Location指向  / , 返回sessionid

2   /                              返回301 MOVED PERMANENTLY, 响应头中Location指向  /myapp/, 未返回 sessionid

3   /myapp/                   返回200 OK, 返回具体页面。

这个过程中Firefox记下了sessionid, 在第3步中提交了;而chrome未记录,在第三步中未提交,导致问题。

解决:

问题的关键在于不同浏览器处理两次重定位的不同(Firefox聪明的记下了302那次请求的会话ID,而chrome没有), 之所以有两次重定位,是因为我在urls.py直接把 / 映射到了 /myapp/,而在login.html中设置 next="/"。 如果只重定位一次,在login.html中设置 next="/myapp/",问题就迎刃而解了。

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载