IE 9 - 30-секундные запросы Ajax POST - PullRequest
3 голосов
/ 21 октября 2011

В IE 9 при отправке запроса AJAX на мой сервер одним из следующих способов

// SproutCore
SC.Request.postUrl(...).send()

// jQuery
$.post(...)

Я всегда вижу задержку около 30 секунд перед возвратом функции, хотя в WireShark я четко вижу, что запрос получен. Прошло много времени с тех пор, как я использовал Wireshark, поэтому, возможно, я просто читаю это неправильно, но я вижу следующее, что заставляет меня думать, что это может быть проблема с Apache, возможно?

Time         Info
-------------------------------------------------------------------
77.716243    [PSH, ACK] Seq=1 Ack=1031 Win=7808 Len=896
107.576027   [FIN, ACK] Seq=897 Ack=1032 Win=7808 Len=0

Обратите внимание на почти точную разницу в 30 секунд. Также я подтвердил, что первый запрос содержит правильные данные с сервера.

Это просто ошибка в IE 9? Или, возможно, неправильная конфигурация на моем сервере Apache?

Любые мысли будут очень оценены!

1 Ответ

1 голос
/ 24 октября 2011

Хммм ... похоже, это не проблема.Судя по всему, перезагрузка моего компьютера устранила проблему, так что это не проблема уровня кода.Извините, что выбросил это в SO-сферу.Надеюсь, однако, кто-то еще увидит это и перезапустит, прежде чем отправлять вопрос: -)

Обновление: Я снова испытываю ошибку, но я думаю, что это связано с сервером, поэтому яоткрыл вопрос о сбое сервера .

Обновление x2: Ну, не настоящее решение, но я нашел обходной путь, используя следующий код:

didSend: function(request, response) {
  if (SC.browser.msie && request.get('type') === "POST") {
    setTimeout(function() {
      Core360.Request.getUrl('/test_server').send();
    }, 500);
  }
}

По какой-то причине это заставляет предыдущее соединение закрываться, и, очевидно, запрос GET немедленно возвращается и не ожидает, поэтому он работает.

Надеюсь, это поможет бедной душе вбудущее.

...