2013-03-09 69 views
5

我正在使用SignalR跨域通信編寫一個Web應用程序。我正在使用最新版本的SignalR,1.0.1。以下是在jQuery的文檔準備事件的代碼:SignalR跨域不能在除IE10以外的瀏覽器上工作

var connection = $.hubConnection(url); 
    var proxy = connection.createHubProxy(hubName); 

    connection.start().done(function() { 
    proxy.invoke('serverMethod'); 
    }); 

我試圖運行在Opera,火狐,Chrome和IE 10的應用程序我的操作系統是Windows 7,它的工作原理以及對IE 10和不工作在其他瀏覽器上。我使用開發人員工具將IE的模式更改爲IE 9,並停止工作。如果我使用SignalR 0.5.3版本,相同的代碼適用於所有瀏覽器。

在瀏覽器的開發工具中,我發現下面的HTTP狀態碼是對協商請求的響應:「HTTP/1.1 403 Forbidden」。

我在這裏錯過了什麼嗎?這是什麼原因,因爲它打破了除IE 10以外的瀏覽器?

回答

12

確保在您的MapHubs調用中啓用跨域。

RouteTable.Routes.MapHubs(new HubConfiguration() { EnableCrossDomain = true }); 

在本地測試跨域時,IE10有一個有趣的功能,將任何本地主機端口視爲不是跨域。

+0

謝謝泰勒。有效! – 2013-03-09 19:38:14

+0

新的方法:http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#crossdomain – dudeNumber4 2015-10-09 17:54:36

相關問題