Asp.net core 为什么从客户端发送请求时会出现CORS策略错误?
我将angular项目的请求发送到WebAPI.NETCor2.2 我得到了这个错误:Asp.net core 为什么从客户端发送请求时会出现CORS策略错误?,asp.net-core,Asp.net Core,我将angular项目的请求发送到WebAPI.NETCor2.2 我得到了这个错误: 访问位于的XMLHttpRequest'http://localhost/fridge/api/FridgeType/3' 源于http://localhost:4200'已被CORS策略阻止: 对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。 下面是我的web api.net cor 2.2中的web.config文件: 你知道上面的错误是什么原因吗 我从R.Richards那里得到
访问位于的XMLHttpRequest'http://localhost/fridge/api/FridgeType/3'
源于http://localhost:4200'已被CORS策略阻止:
对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。
下面是我的web api.net cor 2.2中的web.config文件:
你知道上面的错误是什么原因吗 我从R.Richards那里得到了一个解释,他也提到了这一点作为评论 浏览器安全性防止网页向浏览器发出请求 与服务于网页的域不同。这 限制称为同源策略。同一原产地政策 防止恶意站点从其他站点读取敏感数据 地点。有时,您可能希望允许其他站点进行跨源访问 对应用程序的请求。有关更多信息,请参阅 我可以通过使用
app.UseCors(x=>x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().AllowCredentials());
在中配置启动.cs的方法,如下面的代码
public void配置(IApplicationBuilder应用程序,IHostingEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他的
{
app.UseHsts();
}
app.UseCors(x=>x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().AllowCredentials());
app.UseHttpsRedirection();
app.UseMvc();
}
因为localhost和localhost:4200是两个不同的来源…您需要在api端将localhost:4200列为白名单。@SoumenMukherjee您看到web.config设置了吗?这是一本关于这个主题的好书:请看这个