axios 是一个基于 promise 的 HTTP 库,可以用于浏览器和 node.js 中发送请求。SameSite 是一个用于控制 cookie 在跨站请求中如何发送的属性,它有三个可能的值:Strict、Lax 和 None。Secure 是一个用于指示 cookie 只能在 HTTPS 连接上发送的属性。
如果想要在跨站请求中使用 axios 发送 cookie,需要在服务器端设置 cookie 的 SameSite 为 None,并且设置 Secure 为 true。这样,在 HTTPS 连接上,浏览器才会将 cookie 发送给服务器。同时需要在客户端的 axios 请求中设置 withCredentials 为 true,以允许携带 cookie。
以C#为例:
// 添加Session支持
builder.Services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(1);
options.Cookie.IsEssential = true;
options.Cookie.SameSite = SameSiteMode.None; // 默认的SameSite=Lax,使用域名(非IP)访问时无法设置Cookie,会导致Session失效
options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest; // 使用SameSite=None必需的属性
});
Axios在跨站请求中发送cookie需服务器设置Cookie的SameSite为None和Secure为true,确保在HTTPS连接上安全传输。客户端需设置withCredentials为true以携带cookie。C#示例展示了如何配置Session以支持这些特性。
1598

被折叠的 条评论
为什么被折叠?



