Api .net core允许在使用CORS时发回错误401(而不是零)
我的客户端JS应用程序在实际为401时接收到状态代码0。Api .net core允许在使用CORS时发回错误401(而不是零),api,asp.net-core,cors,http-status-codes,Api,Asp.net Core,Cors,Http Status Codes,我的客户端JS应用程序在实际为401时接收到状态代码0。 当我使用postman运行相同的请求时,我得到了预期的401 我已启用cors,如下所示: services.AddCors(o => o.AddPolicy("cors", builder => { builder.WithOrigins("http://localhost:4200") .AllowAnyMethod()
当我使用postman运行相同的请求时,我得到了预期的401 我已启用cors,如下所示:
services.AddCors(o => o.AddPolicy("cors", builder =>
{
builder.WithOrigins("http://localhost:4200")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
}));
....
app.UseCors("cors");
当没有身份验证问题时,cors正在工作(401)
我在客户端得到错误代码0,而它应该是401
此错误的原因很可能是服务器上的COR和web浏览器的组合 原因:我猜,服务器响应中缺少一些必需的CORS头。当使用不正确的Cors头时,浏览器返回0状态 解决方案:我猜您注册中间件的顺序不正确。 根据文件: 对于端点路由,必须将CORS中间件配置为 在对UseRouting和UseEndpoints的调用之间执行。不准确的 配置将导致中间件停止正常运行 我会按照这样的顺序为您注册中间件(取决于您使用的中间件):
邮递员不关心CORS,所以不管发生什么,它都会在那里工作:)@juunas我说过,为了澄清401确实从服务器返回,您是否检查了邮递员发送的所有标题*,并试图在JS请求中完全相同?*在选项卡标题中,展开“临时标题”以查看邮差在没有明确设置的情况下发送的所有内容them@GuillaumeSasdy浏览器网络选项卡显示401。但是在JS中它是0
app.UseRouting();
app.UseCors("cors");
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
...
//register app.UseMvc(); last