Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 为什么从客户端发送请求时会出现CORS策略错误?_Asp.net Core - Fatal编程技术网

Asp.net core 为什么从客户端发送请求时会出现CORS策略错误?

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那里得到

我将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那里得到了一个解释,他也提到了这一点作为评论

浏览器安全性防止网页向浏览器发出请求 与服务于网页的域不同。这 限制称为同源策略。同一原产地政策 防止恶意站点从其他站点读取敏感数据 地点。有时,您可能希望允许其他站点进行跨源访问 对应用程序的请求。有关更多信息,请参阅

我可以通过使用

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设置了吗?这是一本关于这个主题的好书:请看这个