跨域的SignalR
我试图获得跨域工作的基本示例,但我无法让它正常工作。根据https://github.com/SignalR/SignalR/issues/6这个人的说法,他通过添加一个Access-Control-Allow-Origin
标题来实现它的工作。跨域的SignalR
基本上,我已经为mvc 3应用程序添加了一个集线器,在web.config中添加了上述标题,并创建了一个发送消息的页面。这个设置工作正常。 接下来,我创建了使用页面上的相同客户端的JavaScript不同的Web应用程序,但是URL设置为使用不同的服务器:
$.connection.hub.url = 'http://www.myserver.com/signalr';
只要我用它停止工作远程URL。
如何让SignalR跨域工作?
更新: 一些额外的信息,上面的方法也适用于Chrome和Firefox,但IE9不会喜欢它......
我得到它的工作使用一个简单的测试项目和Internet Explorer 9,但那一点都不不容易,首先我挂在你描述的同样的问题上。我认为你几乎在那里,你只是在你的JavaScript中缺少以下行:
jQuery.support.cors = true;
它告诉jQuery做跨域调用。看起来很简单,但真的很难找到;-)
我解释一切我在blog post做的步骤,因为我没有找到关于这个主题的现有信息为止。
如果还有其他问题,告诉我。我有一个在Internet Explorer 9中运行的工作测试项目,我可以向您发送。
谢谢,它的工作!它确实在永远帧的背景中抛出一个拒绝访问异常(var $ = window.parent.jQuery),并且用户得到一个弹出消息以允许cors,但它发送并接收消息! – 2012-03-30 05:46:13
奇怪的是,我没有得到任何弹出消息...这是在IE或其他浏览器?很高兴它的工作原理:-) – aKzenT 2012-03-30 10:15:28
这确实在IE9中。我希望他们很快就能在SignalR中获得正式的跨域支持:) – 2012-03-31 07:14:48
您正在测试哪个浏览器?并非所有浏览器都支持'Access-Control-Allow-Origin'标头。 – 2012-03-18 10:32:48
我一直在使用IE9和Chrome – 2012-03-18 14:16:34