Asp.net-Mvc-3

SignalR 跨域

  • January 23, 2013

我正在嘗試跨域工作的基本範例,但我無法讓它工作。根據這裡的某人https://github.com/SignalR/SignalR/issues/6,他通過添加Access-Control-Allow-Origin標題使其工作。

基本上,我已經向 mvc 3 應用程序添加了一個集線器,在 web.config 中添加了上述標頭,並創建了一個頁面來發送消息。此設置工作正常。接下來,我在頁面上使用相同的客戶端 javascript 創建了一個不同的 Web 應用程序,但使用以下方法將 url 設置為不同的伺服器:

$.connection.hub.url = 'http://www.myserver.com/signalr';

一旦我使用遠端 URL,它就會停止工作。

如何讓 SignalR 跨域工作?

更新:一些補充資訊,上述方法適用於 chrome 和 firefox,但 IE9 不喜歡它……

我使用一個簡單的測試項目和 Internet Explorer 9 讓它工作,但這並不容易,首先我遇到了你描述的相同問題。我認為您幾乎就在那裡,您的 JavaScript 中只缺少以下行:

jQuery.support.cors = true;

它告訴 jQuery 進行跨域呼叫。看起來很簡單,但真的很難找到;-)

我在一篇文中解釋了我所做的所有步驟,因為到目前為止我還沒有找到關於這個主題的任何現有資訊。

告訴我是否還有其他問題。我有一個在 Internet Explorer 9 中執行的工作測試項目,可以發送給您。

引用自:https://stackoverflow.com/questions/9751157