2

SignalRを使用してアプリケーションを作成しています。

ハブは、IIS8を搭載したWindowsServer2012を実行している1台のサーバーに配置されます。http ://mentor.cloudapp.net/mass/rexona/previa/signalr/hubs

クライアントはここにあります:http: //massdeveloperstage.com/Rexona/Site/colombia/Previa/Match?matchId = 6F318A29-3400-444B-95D9-7EC41A7AD2D4

Signalrのセットアップは次のようになります。

var match;
    $(document).ready(function () {
        $.connection.hub.loging = true;
        match = $.connection.match;

    match.client.addMessage = function (message) {
        var vm = {
            avatar: message.ProfileImageLocation,
            content: message.Text,
            user: message.UserScreenName,
            obj: JSON.stringify(message)
        };
         alert(vm.obj);
   }
  $.connection.hub.url = 'http://mentor.cloudapp.net/mass/rexona/previa/signalr';

    $.connection.hub.start().done(function () {
        match.server.addToGroup("97-987-PP");
    }).fail(function () {
          //alert("fail!");
    });

Chrome、FF、Opera、IE10ではすべてが完全に機能しますが、IE9を使用してアクセスすると、アプリケーションは失敗します。

接続の設定で何かが足りませんか?IE9を使用するには、サーバーで他の何かを有効にする必要がありますか?

ありがとう。

4

1 に答える 1

1

そこでCORS(クロスサイトオリジンシェアリング)を実行しようとしていると思います。IE9ではそのようには機能しません。詳細についてはこれを確認し、正確な制限についてはMicrosoftページを確認してください。XMLHttpRequestの代わりにXDomainRequestカスタムオブジェクトを使用して実行され、...

  1. ターゲットURLには、HTTPまたはHTTPSプロトコルを使用してアクセスする必要があります
  2. ターゲットURLには、HTTPメソッドGETおよびPOSTのみを使用してアクセスする必要があります
  3. カスタムヘッダーをリクエストに追加することはできません
  4. リクエストのContent-Typeヘッダーではtext/plainのみがサポートされています(soap、json、またはエンコードされたデータ型はサポートされていません!)
  5. リクエストとともに認証やCookieは送信されません
  6. イントラネットURLを対象としたリクエストは、イントラネットゾーンからのみ行うことができます
  7. リクエストは、ホスティングページと同じスキームをターゲットにする必要があります

編集:私は実際にSignalRを使用したことがありません。この回答は、一般的にCORSに基づいています。@stricqのコメントによると、ここで説明されているように、IEがSignalRで機能するには、長いポーリングを有効にする必要があります。

于 2012-11-26T21:39:28.120 に答える