Sto provando a connettere i browser con un server che fornisce Server Sent Events (SSE). Questo server ha un dominio diverso da quello originale. Ad esempio se chiami http://d1.example.com/page
questa pagina proverà a connettersi a un canale SSE su http://d2.example.com/subscribe
. Cercando di fare che chiederà il seguente errore:Errore SSE Uncaught: SECURITY_ERR: DOM Exception 18 con un server che fornisce Server Sent Events (SSE)
Uncaught Error: SECURITY_ERR: DOM Exception 18
sulla linea:
var source = new EventSource("http://d2.example.com/subscribe")
Come posso rimediare?
Update (Soluzioni che ho provato fuori):
1- CORS
ho provato CORS aggiungendo Access-Control-Allow-Origin:*
alle intestazioni del mio servizio web d2.example.com
. Non ha risolto il problema EventSource
, anche se le chiamate $.get("http://d2.example.com")
da d1.example.com
funzionano correttamente! Pensavo che SSE funzionasse su normali richieste HTTP, quindi perché non funziona su Chrome?
2- Redirect
sto utilizzando server di httpd, così ho creato una regola di reindirizzamento in d1.example.com
host virtuale che passa le richieste SSE a d2.example.com
. Ha funzionato perfettamente con Firefox. Chrome, d'altra parte, non ha richiesto alcun errore e non si è nemmeno connesso al server SSE. Sembra che abbia scaricato l'intero comando EventSource
. Sembra che questa soluzione non funzionerà mai, così lascia andare avanti ...
3- Reverse Proxy
Entrambi i browser collegati su d1.example.com/subscribe
che è fondamentalmente connettono a d2.example.com
attraverso proxy inverso. Ma l'evento on_close
non viene mai rilevato, anche se il browser è chiuso. Il che ha senso dal momento che il server d2 sta creando il canale con il server proxy. Come posso inoltrare l'evento on_close
dal server proxy a d2?
Esistono modi diversi per eseguire questa operazione?
@Jack Non è la stessa domanda. Questa domanda non richiede un file. Un file è abbastanza semplice da poter creare una regola di reindirizzamento come scenario peggiore o proxy inverso. SSE non funzionerà con queste soluzioni. – wael34218