【问题标题】:SignalR cross domain not working on browsers other than IE10SignalR 跨域无法在 IE10 以外的浏览器上运行
【发布时间】:2013-05-16 09:46:23
【问题描述】:

我正在使用 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 以外的浏览器上崩溃的原因是什么?

【问题讨论】:

    标签: asp.net signalr


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 2014-09-15
    • 2011-06-21
    • 2016-03-03
    • 2022-06-17
    • 1970-01-01
    • 2012-10-12
    相关资源
    最近更新 更多