.net core React js和.NET WebAPI的CORS问题
我有一个用React js制作的前端和一个用net core 2.0制作的后端。两者都在本地主机上运行(本地主机分别为3000和5001)。我所要做的就是让前端获取一些数据:.net core React js和.NET WebAPI的CORS问题,.net-core,cors,.net Core,Cors,我有一个用React js制作的前端和一个用net core 2.0制作的后端。两者都在本地主机上运行(本地主机分别为3000和5001)。我所要做的就是让前端获取一些数据: fetch('https://localhost:5001/api/Login/' + this.state.username + '/' + this.state.password + '/') .then( results => { return results.json(); }
fetch('https://localhost:5001/api/Login/' + this.state.username + '/' + this.state.password + '/')
.then( results => {
return results.json();
})
.then( data => {
this.setState({
jobTitle : data.jobTitle,
});
});
此方法由按钮调用,因此每当我单击此按钮时,控制台中就会出现错误
已阻止跨源请求:同一源策略不允许读取位于的远程资源。(原因:CORS请求未成功)
这在运行Windows7的Firefox上发生
有趣的是,如果我在运行Mint的笔记本电脑上运行相同的代码,它就可以正常工作
该API是通过运行dotnet新的webapi制作的,我几乎没有做任何更改
我还尝试实现了在其他问题和文章中找到的一些解决方案,以及在firefox上使用Cors everything,但没有任何效果。我现在不知道该怎么办,所以非常感谢您的帮助
谢谢大家,这是因为大多数浏览器将
localhost:3000
和localhost:5001
视为不同的主机,因此在API响应中需要CORS头,以使通信成为可能
在生产环境中,如果您将在同一主机名下托管它,则可能不会出现这种情况,但对于测试环境,您可以添加
response.setHeader('Access-Control-Allow-Origin', '*');
在API处理程序中,允许从所有来源访问API