2

我正在尝试在背景页面的 chrome 扩展中使用 SignalR。

一切似乎都运行良好,直到它尝试调用协商。它似乎正在使用调用者(这是一个 chrome 扩展背景页面)并试图针对它调用协商,这在尝试调用此页面时给了我 404:

chrome-extension://edcdcfjmmmchhgmomfemdkomibeoloko/signalr/negotiate?_=1372007788595

我想它应该打电话

https://myserver.com/signalr/negotiate?_=1372007788595

但我不知道如何用特定主机覆盖 SignalR。我可以覆盖 SignalR 以在背景页面上的 chrome 扩展中工作吗

4

2 回答 2

2

我假设您使用的是javascript?尝试

 $.connection.hub.url = "http://myserver.com/signalr";
于 2013-06-23T17:34:35.783 回答
1

我花了几个小时才弄明白,但这里有几个步骤可以让 Signalr 与 google chrome 扩展一起工作。

放置在javascript中

$.connection.hub.url = "http://yoursever.com/signalr"`

在 google chrome 的 manifest.json 文件中,您必须授予访问服务器的权限。我会添加这样的东西以使其变得容易。

"permissions": [
    "http://*/*", 
    "https://*/*"
]

在您的全局配置中,您需要更改允许跨域请求。改变

 RouteTable.Routes.MapHubs()

RouteTable.Routes.MapHubs(new HubConfiguration()
{
    EnableCrossDomain = true
});
于 2013-09-03T22:23:20.237 回答