SignalR:协商请求期间出错:未定义
Posted
技术标签:
【中文标题】SignalR:协商请求期间出错:未定义【英文标题】:SignalR: Error during negotiation request: undefined 【发布时间】:2013-02-20 22:02:49 【问题描述】:我一直在尝试让 javascript signal-r 客户端与自托管的 owin 服务器一起工作。我遇到了这个问题。我已经尝试了代理和没有代理方法,两者都具有相同的结果和错误“”。
我已经能够让跨域示例运行而没有任何问题,并且无法弄清楚我做错了什么,有人有什么想法吗?
浏览器控制台获取日志尝试协商,然后我得到了失败。
服务器/集线器
namespace SignalROwinHost
class Program
static void Main(string[] args)
string url = "http://localhost:9000/";
using (WebApplication.Start<Startup>(url))
Console.WriteLine("Server running on 0", url);
Console.ReadLine();
public class Startup
public void Configuration(IAppBuilder app)
app.MapHubs();
public class ChatHub : Hub
public void Send(string message)
Clients.All.send(message);
Javascript(无代理):
<script type="text/javascript">
$(function ()
var connection = $.hubConnection('http://localhost:9000');
var chat = connection.createHubProxy('chatHub');
chat.on('send', function (message)
$('#chat').html($('#chat').html() + "\r\n" + message);
);
connection.logging = true;
connection.start().done(function ()
alert("Connection Complete");
$('#sendBtn').click(function ()
chat.invoke('send', $('#message').val());
);
).fail(function (param) alert(param); );
);
</script>
Javascript(代理):
<script src="http://localhost:9000/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
$(function ()
var chat = $.connection.chatHub;
chat.client.send = function (message)
alert(message);
;
$.connection.hub.logging = true;
$.connection.hub.url = "http://localhost:9000/signalr";
$.connection.hub.start()
.done(function (param)
chat.server.send("Connected");
)
.fail(function (param)
alert("Could not Connect: " + param);
);
);
</script>
【问题讨论】:
【参考方案1】:如果您使用的是 SignalR 1.0.0(您应该使用 SignalR 1.0.0,因为它现已正式发布),您需要将您的呼叫更改为 MapHubs
以启用跨域请求。这是假设您的网站不是是从 localhost:9000 提供的。我猜这不是因为您将网址传递给$.hubConnection
。
app.MapHubs(new HubConfiguration EnableCrossDomain = true );
在 1.0.0 的最终版本之前,CORS 默认启用。
【讨论】:
我拥有所有这些东西,它适用于所有浏览器,但不适用于 IE 10。有什么想法吗?以上是关于SignalR:协商请求期间出错:未定义的主要内容,如果未能解决你的问题,请参考以下文章
SignalR- Jquery:$.connection.chathub 返回未定义