iOS Simulator и ошибка POST/GET запросов с setcookie через jQuery ajax

В процессе написания web приложения и адаптирования его для мобильных устройств можно столкнуться со следующей неприятностью в iOS Simulator когда мы отправляем POST или GET запрос через jQuery ajax.

Safari под iOS Simulator может работать с ajax не так как мы хотим. А в частности, если мы устанавливаем cookie в том файле к которому мы отправляем запрос. На самом деле это частныц случай, по крайней мере, я так поймал этот баг. Cookie не устанавливается в Safari под iOS.

Как это пофиксить и как сделать так, чтобы Safari в iOS Simulator работал в POST/GET через ajax?


Итак, как говорилось ранее, setcookie это частный случай через который было поймано неправильное поведение Safari в iOS Simulator.
Предположим, что мы используем следующую конструкцию в файле для того, чтобы отправлять и принимать данные от скрипта:

Не смотря на то, что установлен флаг cache: false, мы все-равно будем принимать ответы из кеша, чтобы мы не отправляли, и как бы не менялся файл ajax.php. В этом основная проблема.
Другие браузеры прекрасно реагируют на cache: false и не кешируют ответы. Но не safari. Для него нам надо добавить конструкцию типа:

в файл ajax.php.
Однако и после этого возможны проблемы. Для того, чтобы все работало хорошо, надо очистить кеш/куки браузера в настройках.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.