SignalR连接请求不发送cookie

时间:2013-01-10 06:11:03

标签: javascript ajax http cookies signalr

我正在使用ASP.NET Web API和SignalR构建Web应用程序。我对HTTP非常了解,但这个问题超出了我的范围。

目前,我正在为此API的所有AJAX请求设置cookie。对API的后续AJAX请求会毫无问题地发送cookie。

但是,我希望这个cookie也可用于建立连接的SignalR请求,但根据Chrome,这些请求中不会发送cookie。我将cookie设置为HTTPOnly。目前,一切都在本地运行;所有请求都转到localhost:port。 Cookie上的域名也设置为localhost

我的SignalR连接如下所示:

var connection = $.connection("/updates");
/* set handlers here */
connection.start(function () {
    console.log("connection started!");
});

似乎Chrome认为这是一个CORS请求并且扣留了Cookie。但请求在同一个域上,所以这没有多大意义。

1 个答案:

答案 0 :(得分:2)

原来我不太了解饼干。浏览器似乎无法像{cookie}域一样处理localhost等TLD。因此,我保留了域未定义,因此cookie将默认为请求的域。

但是,路径参数需要设置为/才能确保在所有请求中发送cookie。

一旦我做了这些更改,一切都按预期工作,我的cookies在SignalR中清晰可见。