Неправильный ответ, который вы получаете, скорее всего, приходит из кеша.
Вы можете использовать средство просмотра заголовков HTTP , чтобы узнать, какие заголовки кэширования отправляет ваш сервер, или вы можете быть уверены, с помощью LiveHTTPHeaders дополнения для Firefox.
Что вы ищете:
- Заголовок Expires: указывает браузеру повторно использовать эту же страницу для дальнейших запросов до определенной даты, без проверки с сервера. То же самое верно для секции max-age = в заголовке Cache-Control: . То есть, если вы видите заголовок Expires или раздел максимального возраста, браузер может вернуть устаревшую (устаревшую) страницу, не возвращаясь на сервер.
Возможно, что ваш сервер или прокси-сервер между вашим браузером и вашим сервером автоматически добавляет подобные валидаторы кэша на ваши страницы, тогда как ваш сервер на вашем локальном хосте - нет. Если это так, вы можете попытаться удалить их. Возможно, администратор сервера настроил mod_expires (вы можете переопределить это в .htaccess). Если это вызвано прокси-сервером между вашим браузером и вашим сервером, у вас может не быть большого выбора.
Несколько других интересных вещей:
- Вы должны использовать запрос POST, а не запрос GET, если важно, чтобы определенное действие что-то изменило на сервере. Ответы на POST-запросы никогда не кэшируются (хотя, если вы выполните Post-Redirect-Get , тогда получите get после него, но это уже другая история).
- Обратите внимание, что кэширование в вашем браузере может вести себя по-разному, когда вы обращаетесь к чему-то на «localhost» по сравнению с доступом к нему в любом другом домене, даже если серверы настроены одинаково и отправляют одинаковые заголовки. По крайней мере, это относится к Firefox (я сам это видел). IE также имеет разные зоны безопасности, которые могут правдоподобно влиять на кеширование, заставляя его вести себя по-разному на localhost.
- Вы можете заставить свой сервер выводить Cache-Control: заголовок no-cache и заголовок Pragma: no-cache . Это можно сделать в PHP, используя два вызова функции header (). Хотя браузеры и прокси-серверы не должны использовать поведение по умолчанию, которое может вернуть устаревший результат, если не указан валидатор, это по крайней мере делает явным то, что вы абсолютно не хотите, чтобы что-то кэшировалось.
Также обратите внимание, что если вы обращаетесь к Интернету через прокси-сервер, это также может влиять на некоторые вещи, включая то, какие заголовки кэширования вы получаете.