我在使用React和TypeScript从webapi (webapi核心3.0.100)获取数据时遇到了问题。webapi项目有一个端点http://localhost:5000/api/values。我可以直接在Chrome中浏览这个URL并查看数据,我也可以在Postman中成功地访问端点。
在我的根目录/React-app/App.tsx文件夹中,我有以下代码:
state = {
values: [],
};
componentDidMount() {
axios.get('http://localhost:5000/api/values').then((response) => {
console.log(response);
this.setState({
values: [
{ id: 1, name: 'Value 101' },
{ id: 2, name: 'Value 102' },
],
});
});
}
当我转到主机上的localhost:3000时,控制台无法访问"values",状态为(failed),并给出以下错误: GET http://localhost:5000/api/values net::ERR_FAILED
当我展开错误时,第一行在xhr.js下的"dispatchXhrRequest“中显示了一个错误
request.send(requestData)下有一个红色下划线
request.send(requestData);
});
};
我完全迷路了,我可以使用上面相同的代码访问任何其他端点,比如jsonplaceholder.typicode.com/ lost,但不能使用http://localhost:5000/api/values
如何解决此问题?我已经尝试了2天,但是我不能解决这个问题,所以我需要社区的帮助。
项目详情:
使用TypeScript React v17.0.1 .Net核心3.0.100 3类库(应用程序、域、持久性)1 webapi (应用程序接口)进行反应
我已经广泛地检查了其他问题,它们似乎要么对React和/或.Net核心的旧版本有响应,要么没有解决这个特定的问题。
发布于 2020-12-27 06:34:59
在Startup.CS中,我必须在ConfigureServices方法中添加以下内容:
public void ConfigureServices(IServiceCollection services)
services.AddCors(opt =>
{
opt.AddPolicy("CorsPolicy", policy =>
{
policy.AllowAnyHeader().AllowAnyMethod().WithOrigins("http://localhost:3000");
});
});
并将以下代码添加到Configure方法中:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
app.UseCors("CorsPolicy");
感谢ABOS链接到一个对解决方案有提示的问题。
https://stackoverflow.com/questions/65460992
复制相似问题