这个问题可能是由于浏览器限制了JWT Cookie而不是HTTP Header所致。通过在Startup.cs文件中添加以下代码段可解决此问题:
services.ConfigureApplicationCookie(options =>
{
options.Events = new CookieAuthenticationEvents
{
OnRedirectToLogin = context =>
{
context.Response.StatusCode = 401;
return Task.CompletedTask;
}
};
});
这将设置一个cookie middleware,使其能够与JWT一起正常工作。然后,当在浏览器中使用JWT时,应该将JWT存储在HTTP头中,例如:
headers: {
"Authorization": "Bearer "
}
将其加入你的AJAX请求或是Fetch请求即可成功访问API。
上一篇:ASP.NETCore6JWTbearertoken异常
下一篇:ASP.NETCore6控制器中的依赖注入返回System.InvalidOperationException:Unabletoresolveservice