В операционной системе iOS 6 обнаружилась неожиданная новая функция: система автоматически кэширует все ответы на запросы POST, даже если в заголовке явно прописано, что их нельзя кэшировать. Из-за этого у многих разработчиков веб-приложений «поломалась» функциональность, которая была реализована на Ajax.
У пользователей iOS6 некоторые веб-приложения некорректно работают, поскольку браузер берёт из кэша информацию, которую должен получать от сервера в интерактивном режиме.
Например, разработчики фреймворка PhoneGap приводят такой пример.
getNewRecordID(intRecordType)
Если используется такая функция, то каждый раз при запросе к серверу она возвращает разный результат, но под iOS6 результат будет закэширован, так что приложение не сможет нормально работать.
В качестве обхода можно при каждом вызове менять название функции.
getNewRecordID(intRecordType, strTimestamp)
Эксперт рабочей группы IETF HTTPbis Working Group Марк Ноттингем (Mark Nottingham) объясняет, что такое поведение iOS 6 является очевидным нарушением спецификаций RFC 2616, которые разрешают кэширование ответов HTTP POST только в исключительных случаях.
Марк Ноттингем выражает надежду, что Apple быстро выпустит апдейт, в котором будет исправлена ошибка, а разработчикам не придётся использовать обходной путь для решения этой проблемы в ближайшие пять лет.