2012-11-26 39 views
1

我正在使用SignalR進行應用程序。SignalR IE9跨域請求不起作用

集線器放置在運行帶有IIS 8的Windows Server 2012的一臺服務器上。 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?

謝謝。

+0

你有沒有得到這個工作? – stricq

回答

1

我想你正在嘗試做CORS(跨站點起源分享)。它不像IE9那樣工作,查詢this進行詳細的討論,並且microsoft page的確切限制。它與XDomainRequest自定義對象,而不是XMLHttpRequest的完成,...

  1. 目標URL必須使用HTTP或HTTPS
  2. 目標URL必須通過訪問協議來訪問只有HTTP方法GET和POST
  3. 沒有自定義標頭可以被添加到該請求
  4. 只有text/plain的是支持請求的Content-Type頭(沒有肥皂,JSON或編碼的數據類型!)
  5. 沒有認證或餅乾將被髮送請求
  6. 請求針對內網的網址只可從Intranet區域
  7. 的要求做出一定要有針對性的方案同樣託管頁面

編輯:我還沒有實際使用過SignalR自己,這個答案一般基於CORS。根據@stricq的評論,IE需要長時間輪詢才能與SignalR配合使用,如here中所述。

+0

我只是刪除這一行:'jQuery.support.cors = true;'但IE9沒有改變。任何其他想法? 謝謝你的時間。 – dnlgmzddr

+0

還提到了IE9的其他要求。這隻會解決它,如果你已經遵循[所有其他要求](http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx )也是。例如JSON不受支持。 – eis

+0

我投降,因爲這裏沒有關於如何讓SignalR在IE9中工作的信息。這就是問題的具體內容。 – stricq