跨域SignalR在IE< = 9中不起作用

时间:2013-02-24 13:07:46

标签: asp.net cross-domain signalr

我正在使用SignalR-1.0.0-rc2。 我使用的是跨域SignalR,因为移动设备上的某些浏览器仍然只允许每个域有两个连接。所以我有一个用于SignalR的域名和一个用于网络的域名。服务器端,它们都是一样的。

我的实现适用于Opera,Firefox,Chrome,Safari和IE10。它不适用于IE9,IE8和IE7。

jQuery.support.cors = true;
var connection = $.connection.globalHub;
$.connection.hub.url = SignalRDomain;
$.connection.hub.logging = true;
$.connection.hub.qs = "UserID="+UserID+"&Login="+UserLogin+"&UserHash="+UserHash;

connection.client.MyLocalFunction = function () {
    // do something
}

$.connection.hub.start();

我已开启日志记录。 IE9 / 8/7控制台向我展示了两条SignalR跟踪消息:  [13:54:37 UTC + 0100] SignalR:自动检测跨域url。  [13:54:37 UTC + 0100] SignalR:与'http://live.mydomain.de/signalr/negotiate'谈判。

如果我查看调试器的“网络”选项卡,我看不到对服务器的任何调用。所以似乎SignalR在调试消息之后就死了。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

所以这就是请求失败的原因:IE9 jQuery AJAX with CORS returns "Access is denied"

您可以通过删除“jQuery.support.cors = true”行来解决此问题。

对于SignalR 1.0.0-rc2,它可以正常工作,但是对于SignalR 1.0.0及更高版本的所有版本,您需要在地图集线器呼叫中启用跨域:SignalR cross domain not working on browsers other than IE10