angular - Angular/.net 核心 webapi 应用程序中的 CORS 问题
问题描述
我正在使用 Angular 8 和 .net core 3.0.1 试图了解有关 Web 应用程序开发的知识。不幸的是,当我尝试将一些数据从我的 .net 核心 webapi 调用到 Angular 框架应用程序时,我遇到了一些问题。在浏览器控制台中,我收到有关 CORS 访问的错误。
从源“ http://localhost:4200 ”访问“ https://localhost:5001/api/user/pagewise/1/10 ”的 XMLHttpRequest已被 CORS 策略阻止:没有“访问控制允许源” ' 请求的资源上存在标头。
我以为我已经在我的 webapi Startup.cs 中激活了 Cors:
...
public void ConfigureServices(IServiceCollection services)
{
_connectionString ="XXX";
services.AddCors( opt =>
{
opt.AddPolicy("CorsPolicy",
c => c.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
})
;
services.AddControllers();
services.AddEntityFrameworkNpgsql()
.AddDbContext<ApiContext>(
opt => opt.UseNpgsql(_connectionString));
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DataSeed seed)
{
if (env.IsDevelopment())
{
app.UseCors("CorsePolice");
app.UseDeveloperExceptionPage();
}
app.UseCors("CorsePolice");
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapControllerRoute("default", "api/{controller}/{action}/{id?}");
endpoints.MapControllers().RequireCors("CorsPolicy");
});
}
但它似乎不起作用。在 .net core 3.0.1 WebApi 中使用 Cors 有什么不同的方法吗?
解决方案
您收到 CORS 错误的原因可能有很多:- 1. 在从角度端对 API 的请求中使用正确的标头 2. 可能您不允许来自后端端的 CORS
解决使用问题:- 1. 在 Angular 中使用 allow-cross-origin 2. 尝试在 chrome 浏览器中使用 cors 插件,我想你的问题会解决的。
另外,尝试通过邮递员使用API,它会确定哪一方是问题
这些是我面临的一些问题以及我解决的方法。我不确定它一定会帮助你,但试一试可能会有所帮助。
推荐阅读
- angular - 导入 thrift 库时出现 Angular 的“无法解决”错误
- java - 无法在范围外返回arraylist,它变为null
- angular - 通过 ngOnInit() 运行函数不适用于 ionic 4
- git - 使用批处理文件从 github 拉取请求中读取 Base 分支和 Feature 分支信息
- opencv - 我无法将 RGB 图像保存为 Lab 图像
- sql-server - Sql server - 带有两个连接的内连接语法
- python - Python 可执行文件的大小
- java - 在word文档的标题中添加图像的问题
- java - Why only highest degree of polynomial for Big Oh?
- c - C:分段错误 11 仅在终端中,不在调试器中