EventSource XHR заголовки

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

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

2 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам