Ho un server signalr 2.0 che dovrebbe servire i domini multipli .. Quindi è necessario abilitare CORS nel mio server. Io utente iis7.5 come server web. ho attivato il CORS in Startup
metodo del mio progetto come segueIl dominio incrociato non funziona con signalr 2.0
public void Configuration(IAppBuilder app)
{
app.Map("/signalr", map =>
{
// Setup the CORS middleware to run before SignalR.
// By default this will allow all origins. You can
// configure the set of origins and/or http verbs by
// providing a cors options with a different policy.
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration
{
// You can enable JSONP by uncommenting line below.
// JSONP requests are insecure but some older browsers (and some
// versions of IE) require JSONP to work cross domain
// EnableJSONP = true
};
// Run the SignalR pipeline. We're not using MapSignalR
// since this branch already runs under the "/signalr"
// path.
map.RunSignalR(hubConfiguration);
}
}
Questo codice è copia e incollato da questo articolo http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client
Ho creato un progetto di localhost e provo a collegarmi a signalr server.
ma ottengo il seguente errore nel firefox
Richiesta Cross-Origin bloccati: La stessa politica di origine non consente la lettura della risorsa remota a http://MyWebSite.com:8082/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22sahragostarhub%22%7D%5D&clientProtocol=1.3&_=1405622027746
Questo può essere risolto spostando la risorsa allo stesso dominio o attivare CORS . negoziare
e questo errore in cromo XMLHttpRequest non può caricare http://MyWebSite.com:8082/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22sahragostarhub%22%7D%5D&clientProtocol=1.3&_=1405622032883
. Nessuna intestazione 'Access-Control-Allow-Origin' è presente sulla risorsa richiesta. Origine '(Il mio cliente indirizzo del sito)' non è quindi consentito l'accesso
aggiungo anche le seguenti linee al mio web.config
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
Tale variazione è anche inutile.
Non sono sicuro che questo aiuti, ma in un'applicazione angolare che utilizza "*" non ha funzionato, abbiamo dovuto specificare il dominio esatto. – epitka
Tutto ciò che sappiamo è che le intestazioni non vengono impostate correttamente. Puoi aggiungere le intestazioni alla tua domanda? –
Suggerisco di usare il violinista per ispezionare le intestazioni che il server sta effettivamente inviando; senza quello, è tutto congetture –