我的反应前端运行在http://localhost:3000上,ASP.NET核心后端在https://localhost:44378上运行。我没有在请求中看到cookie,尽管我在Chrome中看到了它们:

以下是一些请求头:
sec-fetch-mode: cors
sec-fetch-site: cross-site我试着自己做饼干:
HttpContext.Response.Cookies.Append("my1", "cookie.None", new CookieOptions() {
Expires = DateTime.UtcNow.AddYears(1), SameSite = SameSiteMode.None, Secure = true,
});
HttpContext.Response.Cookies.Append("my2", "cookie.Lax", new CookieOptions() {
Expires = DateTime.UtcNow.AddYears(1), SameSite = SameSiteMode.Lax, Secure = true,
});
HttpContext.Response.Cookies.Append("my3", "cookie.Strict", new CookieOptions() {
Expires = DateTime.UtcNow.AddYears(1), SameSite = SameSiteMode.Strict, Secure = true,
});我在Chrome上看到了它们:
set-cookie: my1=cookie.None; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=none
set-cookie: my2=cookie.Lax; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=lax
set-cookie: my3=cookie.Strict; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=strict但它们不会出现在上面的桌子上,也不会出现在后面。
我就是这样试着读的:
app.Use(async (context, next) =>
{
foreach (var p in context.Request.Cookies)
{
log.Info($"{p.Key} - {p.Value}");
}
log.Info(context.Request.Path);
await next.Invoke();
});编辑:将前端更改为https
sec-fetch-mode: cors
sec-fetch-site: same-site通过port should not be an issue仍然不能工作。但是当我在相同的过程中运行前端和后端时,所以不需要cors,它可以很好地工作。
发布于 2021-06-05 18:36:43
似乎我的请求被认为是CORS,所以我做了两件事:
服务器端的
services.AddCors(...)调用中添加了.AllowCredentials()。这将access-control-allow-credentials: true添加到客户端的响应.axios将凭据包括在带有HTTPS=true npm start的前端的请求中,以便将它们都放在https.上。
https://stackoverflow.com/questions/67753195
复制相似问题