Asp.net core Asp.net Core允许使用CORS自定义标头(客户端使用axios)

Asp.net core Asp.net Core允许使用CORS自定义标头(客户端使用axios),asp.net-core,cors,axios,asp.net-core-webapi,Asp.net Core,Cors,Axios,Asp.net Core Webapi,我在客户端和Asp.net核心Web Api服务器端有一个应用程序(Vuejs)+axios。 我已经添加了一个jwt令牌auth。我已将服务器配置为在令牌过期时添加自定义头。(我在响应中有“tokenexpired”头) axios侦听器的error.response.headers对象中不存在标头“token expired”。。。(注意:这是令人沮丧的,因为页眉出现在Postman上,但axios没有) 编辑:github上的这个问题似乎与我的情况类似默认情况下,浏览器不会向应用程序公开所

我在客户端和Asp.net核心Web Api服务器端有一个应用程序(Vuejs)+axios。 我已经添加了一个jwt令牌auth。我已将服务器配置为在令牌过期时添加自定义头。(我在响应中有“tokenexpired”头)

axios侦听器的error.response.headers对象中不存在标头“token expired”。。。(注意:这是令人沮丧的,因为页眉出现在Postman上,但axios没有)


编辑:github上的这个问题似乎与我的情况类似

默认情况下,浏览器不会向应用程序公开所有响应标题。有关详细信息,请参阅

默认情况下可用的响应头包括:

  • 缓存控制
  • 内容语言
  • 内容类型
  • 上次修改过期
  • 布拉格马
资料来源:

更多一般信息:

要使应用程序可以使用其他标题,请在“从启动时配置”中调用WithExposedHeaders方法

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
   // ...

   app.UseCors(builder =>
   {
      builder.WithOrigins("http://localhost:8080");
      builder.AllowAnyHeader();
      builder.WithExposedHeaders("Token-Expired");
      builder.AllowAnyMethod();
      builder.AllowCredentials();
      builder.Build();
   });
}
注意:您必须设置特定的原点(而不是添加AllowAnyOrigin()方法)。 事实上,CORS规范还规定,如果存在访问控制允许凭据标头,则将源设置为“*”(所有源)无效


Et voilá:)

默认情况下,浏览器不会向应用程序公开所有响应标题。有关详细信息,请参阅

默认情况下可用的响应头包括:

  • 缓存控制
  • 内容语言
  • 内容类型
  • 上次修改过期
  • 布拉格马
资料来源:

更多一般信息:

要使应用程序可以使用其他标题,请在“从启动时配置”中调用WithExposedHeaders方法

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
   // ...

   app.UseCors(builder =>
   {
      builder.WithOrigins("http://localhost:8080");
      builder.AllowAnyHeader();
      builder.WithExposedHeaders("Token-Expired");
      builder.AllowAnyMethod();
      builder.AllowCredentials();
      builder.Build();
   });
}
注意:您必须设置特定的原点(而不是添加AllowAnyOrigin()方法)。 事实上,CORS规范还规定,如果存在访问控制允许凭据标头,则将源设置为“*”(所有源)无效

等等:)