Как мне остановить Firefox от закрытия моего потокового ответа jQuery ajax? - PullRequest
2 голосов
/ 23 апреля 2011

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

В основном это моя ситуация: у меня есть страница, которая устанавливает атрибут src элемента <iframe> для сценария . Сценарий PHP передает ответ со следующими заголовками:

Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: multipart/x-mixed-replace

Это отлично работает в ! Однако закрывает соединение через пару секунд. Как это исправить? Я проверил ответы для скрипта для обоих браузеров, и в остальном ответы идентичны (вплоть до того момента, когда Firefox закрывает соединение).

Потрясающее обновление : Firefox ненавидит «Content-Type: multipart / x-mixed-replace». Как только это убрано, оно работает в Firefox.

Нет ли лучшего способа сделать подобные вещи?

1 Ответ

0 голосов
/ 27 апреля 2011

Решением здесь является отправка Content-Type: multipart/x-mixed-replace в Safari, но не в Firefox.

По причинам, которые я не до конца понимаю, Firefox отключится от сервера через несколько секунд, если этот заголовок присутствует в ответе. В противном случае Firefox отлично справится с потоковым ответом.

Чтобы реализовать это, я просто добавил проверку для пользовательского агента в коде так:


if( preg_match("/Safari/", $_SERVER["HTTP_USER_AGENT"]) )  
    header("Content-Type: multipart/x-mixed-replace");

...