2012-03-06 3 views
3

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

Приложение отлично работает в 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'); 
+0

Вы пробовали использовать стандартный $ .ajax с настройкой 'cache' на false? – trembon

+0

Знаете ли вы, что запрос достигнет сервера или его проблемы с кешем? Не могли бы вы это контролировать? –

+0

@trembon: Не jQuery автоматически добавляет кеш = false для отправки запросов? Во всяком случае, я попробую – Bjorn

ответ

0

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

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"); 
1

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

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

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