【发布时间】:2021-06-08 16:04:11
【问题描述】:
我目前正在从事 .Net 核心项目。我的前端是有角度的。我已经在服务器端处理了 CORS,事实上,它在 JWT 实现后遇到此错误后更早工作。
错误:从源“https://localhost:4200”访问“https://localhost:5001/api/users”处的 XMLHttpRequest 已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”请求的资源上存在标头。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"));
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors(x=>x.AllowAnyHeader().AllowAnyMethod().WithOrigins("https://localhost:4200/"));
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationServices(_config);
services.AddControllers();
// services.AddCors(optpolicy => optpolicy.AddPolicy().AllowAnyMethod().WithOrigins("https://localhost:4002/"));
services.AddCors();
services.AddIdentityServices(_config);
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" });
});
}
getUsers()
{
this.http.get('https://localhost:5001/api/users').subscribe(response=>{
this.users=response;
},error=>{console.log(error);
}
);
}
【问题讨论】:
-
Chrome 不支持 localhost 作为 CORS 地址
-
@Liam 感谢您的建议,但在 Microsoft Edge 中也遇到了同样的错误
-
将 localhost 更改为 127.0.0.1 后出现同样的错误 - 从源 'localhost:5001/api/users' 访问 XMLHttpRequest 已被 CORS 策略阻止:否 'Access-Control-Allow-Origin ' 请求的资源上存在标头。