Ajax Calls в IE9 случайный сбой - PullRequest
3 голосов
/ 06 марта 2012

Я написал интернет-приложение, которое синхронизирует каждое действие пользователя с сервером.Поэтому у меня много запросов Ajax (но не одновременно).

Приложение прекрасно работает в Firefox и Chrome, но IE9 доставляет мне головную боль.У меня совершенно случайные сбои в IE9 с этими почтовыми запросами.Таким образом, проблема не может быть воспроизведена четким действием, однако, это часто происходит.Например, если я выполняю одно и то же действие десять раз подряд, оно может каждый раз либо успешно выполняться, либо завершаться с ошибкой во время одного из этих запросов.Я профилировал сеть с помощью инструментов IE Developer, и это привело к следующему: http://screencast.com/t/VLcK5OKWQl

Как видите, запрос на публикацию остается в ожидании.В подробном описании этого вызова вся информация пуста, даже заголовок запроса.

Я полностью потерян с этой проблемой.Если кто-нибудь знает, что это может быть, поделитесь со мной, я попробую что-нибудь!

Кстати, я использую вызовы jQuery (v1.7.1) $ .post, если это что-то меняет.В ответный файл я также включил следующие заголовки:

header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Pragma: no-cache' );
header('Content-type: application/json; charset=utf-8');

Ответы [ 2 ]

1 голос
/ 15 ноября 2012

У меня была точно такая же проблема, и я смог ее решить, не отправляя пустые данные в виде запроса (просто отправив целое число вместо этого и т. Д.).

Я также пытался выполнить один и тот же запрос несколько раз для отладки того, что пошло не так, и перед изменением аргумента на «не ноль» я получил случайные ответы (либо успех, либо нулевое значение, либо ошибка (код состояния 12031). После внесения изменения «не нулевой аргумент» я смог выполнить один и тот же запрос более 1000 раз без сбоев.

Тем не менее, я не могу воспроизвести это где-либо еще ... так что это все равно не имеет никакого смысла: P

0 голосов
/ 31 июля 2013

Следующие заголовки решили проблему для меня:

ob_end_clean();
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
header("Content-type: application/json; charset=utf-8");
...