2014-06-17 15 views
8

Sto cercando di utilizzare EventSource per una connessione di streaming a un server. Ma ho bisogno di impostare un header chiave di sessione sulla richiesta XHR sottostante. Come posso accedere all'XHR dall'oggetto EventSource se è persino possibile? Grazie!EventSource Intestazioni XHR

Nota che non sono sicuro se CORS è ancora supportato con EventStream ancora, il che impedirebbe a questo di funzionare per me in primo luogo, ma ho letto in alcuni punti che dovrebbe essere supportato ...

risposta

8

In primo luogo, la buona notizia riguarda quasi tutti i browser che supportano SSE, inoltre CORS ha supportato e lavorato con esso. (Un anno fa ci sono stati problemi, in modo da colpire solo problemi se si tratta di utenti che insistono a correre un fuori versione aggiornata di un moderno browser auto-aggiornamento, che è una combinazione insolita.)

  • Ora le cattive notizie: non è possibile impostare le intestazioni sulle richieste EventSource. Dovrai tornare al buon flusso XHR se vuoi essere in grado di impostare le intestazioni.

  • D'altra parte, i cookie vengono inviati, quindi se le informazioni sulla sessione possono essere inviate dai cookie, allora funzionerà.

  • D'altra parte, i cookie si scontrano con CORS; quindi se hai bisogno sia di SSE che di autenticazione con siti di terze parti, sarai frustrato. Devi ricorrere all'utilizzo di XHR.

Ci scusiamo per il tappo palese, ma la migliore fonte di informazioni che conosco, su entrambi questi temi, è il capitolo 9 di my book on SSE. È stato il capitolo più difficile da scrivere :-).

0

Un approccio alternativo sarebbe quello di inviare il token di autorizzazione tramite URL e in combinazione con HTTPS sarebbe comunque sicuro dal dirottamento di token.