跨域的SignalR

时间:2012-03-17 15:22:01

标签: asp.net-mvc-3 signalr

我正在尝试跨域工作的基本示例,但我无法让它工作。根据此处https://github.com/SignalR/SignalR/issues/6的某人,他通过添加Access-Control-Allow-Origin标题来使其工作。

基本上,我已经在mvc 3应用程序中添加了一个集线器,在web.config中添加了上面的标题,并创建了一个发送消息的页面。此设置工作正常。 接下来,我在页面上使用相同的客户端javascript创建了一个不同的Web应用程序,但使用以下命令将URL设置为其他服务器:

$.connection.hub.url = 'http://www.myserver.com/signalr';

一旦我使用远程网址,它就会停止工作。

如何让SignalR跨域工作?

更新: 一些补充信息,上面的方法适用于chrome和firefox,但IE9并不喜欢它......

1 个答案:

答案 0 :(得分:9)

我使用一个简单的测试项目和Internet Explorer 9来实现它,但这并不容易,首先我对你描述的相同问题感到困惑。我认为你几乎就在那里,你只是在JavaScript中错过了以下几行:

jQuery.support.cors = true;

告诉jQuery进行跨域调用。看似简单,但很难找到; - )

我解释了我在blog post中所做的所有步骤,因为到目前为止我还没有找到关于此主题的任何现有信息。

告诉我是否还有其他问题。我有一个在Internet Explorer 9中运行的工作测试项目,我可以发送给你。