Asp.net core Asp.net Core允许使用CORS自定义标头(客户端使用axios)
我在客户端和Asp.net核心Web Api服务器端有一个应用程序(Vuejs)+axios。 我已经添加了一个jwt令牌auth。我已将服务器配置为在令牌过期时添加自定义头。(我在响应中有“tokenexpired”头) axios侦听器的error.response.headers对象中不存在标头“token expired”。。。(注意:这是令人沮丧的,因为页眉出现在Postman上,但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上的这个问题似乎与我的情况类似默认情况下,浏览器不会向应用程序公开所
编辑:github上的这个问题似乎与我的情况类似默认情况下,浏览器不会向应用程序公开所有响应标题。有关详细信息,请参阅 默认情况下可用的响应头包括:
- 缓存控制
- 内容语言
- 内容类型
- 上次修改过期
- 布拉格马
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á:)默认情况下,浏览器不会向应用程序公开所有响应标题。有关详细信息,请参阅 默认情况下可用的响应头包括:
- 缓存控制
- 内容语言
- 内容类型
- 上次修改过期
- 布拉格马
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规范还规定,如果存在访问控制允许凭据标头,则将源设置为“*”(所有源)无效
等等:)