1

SignalR-1.0.0-rc2を使用しています。モバイルデバイスの一部のブラウザーでは、ドメインごとに2つの接続しか許可されていないため、クロスドメインSignalRを使用しています。つまり、SignalR用に1つ、Web用に1つのドメインがあります。サーバー側では、どちらも同じです。

私の実装は、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コンソールには、2つのSignalRトレースメッセージが表示されます。[13:54:37 UTC + 0100] SignalR:クロスドメインURLが自動検出されました。[13:54:37 UTC + 0100] SignalR:「http://live.mydomain.de/signalr/negotiate」とネゴシエートしています。

デバッガーの[ネットワーク]タブを見ると、サーバーへの呼び出しが行われていることがわかりません。したがって、SignalRはそのデバッグメッセージの直後に停止するようです。

何か案は?

4

1 に答える 1

3

したがって、リクエストが失敗する理由は次のとおりです。CORSを使用したIE9 jQuery AJAXは、「アクセスが拒否されました」を返します。

この問題は、「jQuery.support.cors=true」という行を削除することで修正できます。

SignalR 1.0.0-rc2の場合は正常に機能しますが、SignalR 1.0.0以降のすべてのバージョンでは、マップハブ呼び出しでクロスドメインを有効にする必要があります。SignalRクロスドメインがIE10以外のブラウザーで機能しない

于 2013-03-01T20:25:39.087 に答える