我使用KO3.1& php 5.3.3
在我的控制器'action_lang'中使用路由'lang / code'我设置用户UI语言并将其保存到cookie中:
Cookie::set('language', $code)
在此之后我打电话:
Request::current()->redirect('/')
移动到主页面,我有
echo Cookie::get('language')
打印当前语言。
问题是我的浏览器从它的CACHE读取重定向的页面因此Cookie :: get('language')总是显示SAME值。唯一的方法是强制浏览器使用F5刷新,然后按预期更改,但这不是它应该工作的方式。 /它应该立即改变!
这种方法有问题吗?或者只是我太累了...... 我相信这段时间以前工作得很好,使用相同的浏览器和KO2。
请帮助
答案 0 :(得分:1)
如果缓存标头指示,浏览器的行为可能实际上是正确的。正确的解决方案是禁止缓存URI内容。但是,某些浏览器在这里存在问题,可能不希望浏览器根本不允许缓存URL。
在您的确切情况下欺骗浏览器重新加载页面的简单解决方案是将随机参数附加到URL,例如?refresh=$time
,其中$time
是当前时间戳。