如何使用signalr跨域工作?

时间:2014-06-13 12:30:58

标签: cross-domain asp.net-mvc-5 signalr

我想使用跨域进行演示,其中客户端与服务器位于不同的项目中。我知道这是可能的,因为我在stackoverflow上发现了很多这个。仍然有我读到的所有信息,我没有成功这样做。 演示我想这样做: http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-getting-started-with-signalr-20

我在客户端执行此操作以连接我的服务器:

<script type="text/javascript">
    var connection = $.connection.hub.url = 'http://localhost:33691/signalr';
    connection.hub.start().done(function () {
          alert('Now connected');
    }).fail(function () {
        alert("fail!");
    });
</script>

我正在使用signalR 2.0,我收到此错误:

Uncaught TypeError: Cannot read property 'start' of undefined

和localhost:33691是我的服务器。

在我的服务器中,我在startup.cs中有这个:

public void Configuration(IAppBuilder app)
        {
            // Branch the pipeline here for requests that start with "/signalr"
            app.Map("/signalr", map =>
            {
                map.UseCors(CorsOptions.AllowAll);
                var hubConfiguration = new HubConfiguration
                {
                   EnableJSONP = true
                };
               map.RunSignalR(hubConfiguration);
            });
        } 

我还在我的服务器上的web.config中添加了这个:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>

所以我的问题是我做错了什么?或者我忘记了什么,或者有人在某处有一个明确的在线演示?

提前致谢

编辑: 我自己解决了问题

0 个答案:

没有答案