我已经建立了一个Flask应用程序网站,并将其托管在Heroku上。现在我正在尝试使用React来构建一个更erm
的React式前端。我在Flask应用程序中添加了API路由,它返回一个带有一些信息的JSON。
@app.route("/api/", methods=["GET"])
def get_country_info():
*some procesing*
return jsonify(data)
当我用Postman测试时,我得到了预期的JSON,但是当我试图用react(本地开发服务器)获取数据时,我得到了:
阻止的跨域请求:同源策略不允许阅读https://values-chart-generator.herokuapp.com/api?social_value=religion_score&demo_group=education&country=germany上的远程资源。(原因:缺少CORS标题“Access-Control-Allow-Origin”)。状态代码:308.
我不明白问题出在哪里,是React还是 flask ,或者如何解决这个问题。任何帮助感激不尽。
1条答案
按热度按时间u3r8eeie1#
我不是一个flask开发人员,所以我不能给予你代码来修复它。
但你的问题是由于同源策略,这是一个浏览器安全机制,防止不同来源之间的通信。这就是为什么它适用于Postman而不适用于React
所以你的解决方案是将cors配置添加到flask应用程序中,以允许前端origin访问后端。
flask代码可以在这里找到How to enable CORS in flask
更多关于CORS