SignalR 1.0.1 Cross-domain-Anfrage (CORS) mit Chrome
Ich versuche zur Umsetzung der Cross-domain-Aufrufe mit SignalR 1.0.1 mit Chrome (Version 25.0.1364.172). Ich habe meine Benutzeroberfläche in einem host (localhost:16881) und der 'service' - in einem anderen host (localhost:16901).
Ich habe alles eingerichtet wie im Thema Wie verwenden von cross-domain-verbindungen (CORS - Access-Control-Allow-Origin) mit SignalR
add jQuery.support.cors = true; before opening a connection
set up $.connection.hub.url = 'http://localhost:16901/signalr';, pointing to your subdomain
allow cross-domain requests on server side, by adding the following header description:
<add name="Access-Control-Allow-Origin" value="http://localhost:16881" />
inside system.WebServer/httpProtocol/customHeaders section in Web.config file.
Ich habe auch die HubConfiguration einrichten für meine route-mapping im Allgemeinen.asax für SignalR 1.0.1
RouteTable.Routes.MapHubs(new HubConfiguration()
{
EnableCrossDomain = true
});
Sieht alles gut aus in IE10 und FF22. Allerdings in Chrome, es gibt mir eine erorr also wenn SignalR zu versuchen, handshake.
XMLHttpRequest cannot load http://localhost:16901/signalr/negotiate?_=1363560032589. Origin http://localhost:16881 is not allowed by Access-Control-Allow-Origin.
Ich weiß, ich kann es funktioniert mit Chrome, indem Sie den Start mit --disable-web-security, aber es passt nicht wirklich meine Anforderung. Bitte um Hilfe!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, was Sie tun müssen:
<add name="Access-Control-Allow-Origin" value="http://localhost:16881" />
Dann sollte es funktionieren.
Brauchen Sie nicht zu verwenden
Stattdessen können Sie aktivieren CORS-support auf Ihrer Start-Klasse auf Konfiguration. Hier einige Beispiel: