5

我正在使用 SignalR 跨域通信编写 Web 应用程序。我正在使用最新版本的 SignalR,1.0.1。以下是 jQuery 的文档就绪事件中的代码:

var connection = $.hubConnection(url);
  var proxy = connection.createHubProxy(hubName);

  connection.start().done(function () {
    proxy.invoke('serverMethod');
  });

我尝试在 Opera、Firefox、Chrome 和 IE 10 上运行该应用程序。我的操作系统是 Windows 7。它在 IE 10 上运行良好,在其他浏览器上不运行。我将使用开发人员工具的 IE 模式更改为 IE 9,它停止工作。如果我使用 SignalR 0.5.3 版,相同的代码适用于所有浏览器。

在浏览器的开发者工具中,我发现响应协商请求的 HTTP 状态码如下:“HTTP/1.1 403 Forbidden”。

我在这里错过了什么吗?它在 IE 10 以外的浏览器上中断的原因是什么?

4

1 回答 1

12

确保在您的 MapHubs 调用中启用跨域。

RouteTable.Routes.MapHubs(new HubConfiguration() { EnableCrossDomain = true });

在本地测试跨域时,IE10 有一个有趣的功能,它将任何 localhost 端口都视为不是跨域的。

于 2013-03-09T19:15:11.053 回答