我正在使用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以外的浏览器出现问题?
答案 0 :(得分:12)
确保在您的MapHubs调用中启用跨域。
RouteTable.Routes.MapHubs(new HubConfiguration() { EnableCrossDomain = true });
在本地测试跨域时,IE10有一个有趣的功能,可以将任何localhost端口视为不跨域。