我正在使用 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。然而,请求在同一个域上,所以这没有多大意义。