2013-03-09 27 views
5

Sto scrivendo un'app Web utilizzando SignalR cross domain communication. Sto usando l'ultima versione di SignalR, 1.0.1. Di seguito è riportato il codice nel documento evento ready del jQuery:SignalR cross domain non funziona su browser diversi da IE10

var connection = $.hubConnection(url); 
    var proxy = connection.createHubProxy(hubName); 

    connection.start().done(function() { 
    proxy.invoke('serverMethod'); 
    }); 

ho provato a fare funzionare l'applicazione su Opera, Firefox, Chrome e IE 10. Il mio sistema operativo è Windows 7. Funziona bene su IE 10 e non funziona su altri browser. Ho cambiato la modalità di IE utilizzando gli strumenti di sviluppo per IE 9 e ha smesso di funzionare. Lo stesso codice funziona su tutti i browser se utilizzo SignalR versione 0.5.3.

Negli strumenti di sviluppo del browser, ho trovato il seguente codice di stato HTTP in risposta alla richiesta di negoziazione: "HTTP/1.1 403 Proibito".

Mi manca qualcosa qui? Qual è il motivo per cui si sta infrangendo su browser diversi da IE 10?

risposta

12

Assicurarsi che durante la chiamata a MapHubs si attivi il dominio incrociato.

RouteTable.Routes.MapHubs(new HubConfiguration() { EnableCrossDomain = true }); 

Durante il test di dominio croce localmente IE10 ha una caratteristica interessante che tratta qualsiasi porta localhost come non dominio croce.

+0

Grazie Taylor. Ha funzionato! –

+0

Nuovo metodo per questo: http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#crossdomain – dudeNumber4

Problemi correlati