javascript - SignalR 连接请求不发送 cookie

标签 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。然而,请求位于同一域,因此这没有多大意义。

最佳答案

事实证明我对cookie还不够了解。浏览器似乎无法将 localhost 之类的 TLD 作为 cookie 域来处理。因此,我未定义域,以便 cookie 将默认为请求的域。

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

完成这些更改后,一切都按预期运行,并且我的 cookie 在 SignalR 中清晰可见。

关于javascript - SignalR 连接请求不发送 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14251822/

相关文章:

http - 如何缓存 HTTP POST 响应?

javascript - 错误消息 无法在 'appendChild' : parameter 1 is not of type 'Node' 上执行 'Node'

javascript - typescript 找不到名称 'IterableIterator'

php - 模态不在 php (CodeIgniter) 中使用 javascript 加载

google-chrome - HTTP 请求挂起太慢

c - 使用 libcurl 和 CURLFORM_STREAM 将多部分表单上传到 S3

javascript - Promise.all() 中的 Promise 状态和查询是什么?

javascript - Chrome 中的 Angular CPU 泄漏?

javascript - 仅允许电子邮件列表使用表单 javascript 验证提交请求

javascript - 如何在 phonegap 应用程序中使用存储在 localStorage 中的 json 提要?