를 signalr에 연결 나는 콘솔 응용 프로그램 내부의 간단한 SignalR 허브를 만들었습니다허브를
static Microsoft.AspNet.SignalR.Client.HubConnection signalR { get; set; }
public static Microsoft.AspNet.SignalR.Client.IHubProxy signalRhub { get; set; }
public static void StartSignalR()
{
var url = "http://localhost:1968";
signalR = new Microsoft.AspNet.SignalR.Client.HubConnection(url);
signalR.Received += signalR_Received;
signalRhub = signalR.CreateHubProxy("echo");
signalR.Start().Wait();
signalRhub.Invoke("Say", "hub invoked");
}
내 다음 단계는 jquery의 SignalR 허브를 연결하는 것입니다 :
<script src="../Scripts/jquery-1.6.4.js"></script>
<script src="../Scripts/jquery.signalR-2.1.0.js"></script>
<script>
$(function()
{
var connection = $.hubConnection("http://localhost:1968");
connection.start()
.done(function() {
console.log('connected');
connection.send("success?");
})
.fail(function (a) {
console.log('not connected'+a);
});
});
</script>
나는이 스크립트를 실행하려고, 그것은 오류가 있습니다 : 내 실버 라이트 페이지에서 허브에 연결할 수 있습니다 왜
"XMLHttpRequest cannot load localhost:1968/signalr/negotiate?clientProtocol=1.4&_=1404978593482. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin <code>http://localhost:55282</code> is therefore not allowed access."
을 (로컬 호스트에서 호스팅 : 3926)
을하고 난을 실행할 때 실패 jquery 스크립트 (localhost : 55282에서 호스팅)?
내 jQuery와 SignalR 허브 간의 연결을 얻으려면 어떻게해야합니까?
내 생각은 JS가 아닌 다른 포트에서 호스팅하기 때문에이, 크로스 사이트 요청으로 해석된다는 것이다 SignalR 허브. [동일한 출처 정책] (http://en.wikipedia.org/wiki/Same-origin_policy)이 적용됩니다. – scheien
그럴듯하지만, 왜 다른 포트에서 호스팅되는 Silverlight도 성공적으로 연결할 수 있습니까? 그렇다면 교차 요청이 허용되도록 SignalR 허브를 설정할 수 있습니까? – henk
[CORS 사용] (http://www.html5rocks.com/en/tutorials/cors/). 범법자 인 브라우저입니다. Silverlight 구현에서 .NET SignalR 클라이언트를 사용하고 있습니까? – scheien