Расположение перенаправления происходит из кэша браузера.Изменение cookie не применяется - PullRequest
0 голосов
/ 02 марта 2011

Я использую KO3.1 & php 5.3.3

В моем контроллере 'action_lang' с маршрутом 'lang / code' я устанавливаю язык пользовательского интерфейса и сохраняю его в cookie с помощью:

Cookie::set('language', $code)

Сразу после этого я звоню:

Request::current()->redirect('/')

чтобы перейти на главную страницу, где у меня есть

echo Cookie::get('language')

для печати на текущем языке.

Проблема в том, что мой браузер читает перенаправленную страницу из ее CACHE, поэтому Cookie :: get ('language') всегда показывает то же самое значение. Единственный способ - заставить браузер обновиться с помощью F5, тогда он изменится, как и ожидалось, но это не так, как должно работать. / Это должно измениться мгновенно!

Что-то не так с этим методом? или это просто я слишком устал Я уверен, что некоторое время назад это работало нормально, с тем же браузером и KO2.

пожалуйста, помогите

1 Ответ

1 голос
/ 02 марта 2011

Поведение браузера может на самом деле корректироваться, если заголовки кеша указывают это. Правильным решением было бы запретить кэширование содержимого URI. Однако некоторые браузеры имеют здесь проблемы, и может быть нежелательно вообще не разрешать браузеру кэшировать URL.

Простое решение обмануть браузеры для перезагрузки страницы в вашем конкретном случае - добавить случайный параметр к URL-адресу, например ?refresh=$time, где $time - текущая отметка времени.

...