【发布时间】:2020-11-15 19:33:23
【问题描述】:
我正在使用 Angular10 和 .NET core 2.2。我已将 Startup.cs 配置为返回带有 XSRF-TOKEN 的响应。后端正在返回它,但 Angular 不会将它传递给浏览器的 cookie。
服务器端代码
// on ConfigureServices
services.AddAntiforgery(options =>
{
options.HeaderName = "X-XSRF-TOKEN";
});
// on Configure
app.Use(next => context =>
{
string path = context.Request.Path.Value;
if (path != null && path.ToLower().Contains("/api"))
{
var tokens = antiforgery.GetAndStoreTokens(context);
context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken,
new CookieOptions() { HttpOnly = false });
}
return next(context);
});
【问题讨论】:
-
您需要将
withCredentials: true添加到您的角度请求选项中。见这里:stackoverflow.com/a/62777181/1160794 -
上面的链接解决问题了吗?
-
你导入HttpClientXsrfModule了吗?
-
嗨@David,是的,它与Credentials 一起使用:true