【发布时间】:2012-12-24 11:31:40
【问题描述】:
我正在使用 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。然而,请求在同一个域上,所以这没有多大意义。
【问题讨论】:
-
您是否从您的集线器请求 cookie?比如:cookie = Context.RequestCookies["sid"];?
-
我正在使用普通的旧 PersistantConnections。问题原来是我的 cookie 是如何配置的。看我的回答。不过,感谢您的建议。
-
没问题。不过,您应该接受自己的答案。
标签: javascript ajax http cookies signalr