Тип EventSource заголовки то XHR

Я пытаюсь использовать EventSource для потокового подключения к серверу. Но мне нужно установить заголовок ключа сеанса в базовом запросе XHR. Как получить доступ к XHR из объекта EventSource, если это вообще возможно? Спасибо!

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

2 ответов


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

  • теперь плохие новости: вы не можете установить заголовки на запросы EventSource. Вам нужно будет вернуться к хорошей потоковой передаче ole XHR, если вы хотите установить заголовки.

  • с другой стороны, cookies отправляются, поэтому, если ваша информация о сеансе может быть отправлена cookie, это будет работать.

  • с другой стороны, cookies конфликтуют с CORS; поэтому, если вам нужны как SSE, так и аутентификация с сторонними сайтами, вы будете разочарованы. Вы должны вернуться к использованию XHR.

извинения за вопиющий плагин, но лучший источник информации, который я знаю, на обоих этих темы, Глава 9 моя книга о SSE. Это была самая трудная глава для написания : -).


альтернативным подходом было бы отправить маркер авторизации через URL-адрес, и в сочетании с HTTPS он все равно был бы безопасен от захвата маркеров.