【发布时间】:2019-12-24 04:41:37
【问题描述】:
我正在尝试将一些数据从我的前端(react native)发送到远程计算机上运行的烧瓶应用程序。有些东西不工作,我不确定问题出在哪里。
flask 应用正在侦听远程服务器上的 5000 端口。我试过简单地向服务器的 IP 地址(使用端口)发送一个 post 请求,但这不起作用。
在我的前端我有这个代码:
fetch('http://18.222.109.76:5000/add_New_Entry', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
firstParam: 'yourValue',
secondParam: 'yourOtherValue',
}),
}).then((response) => /*do something with response*/
));
在我的后端,我将此代码作为烧瓶应用程序的一部分:
app = Flask(__name__)
app.debug = True
app.config['CORS_HEADERS'] = 'Content-Type'
CORS(app)
@app.route("/")
def hello():
return ""
@app.route('/add_New_Entry', methods=['GET', 'POST'])
@cross_origin(origin='*',headers=['Content- Type','Authorization'])
def add_New_Form():
print('bla')
return ""
if __name__ == '__main__':
app.run(debug=True)
所以,我希望如果我从前端运行这段代码,服务器会打印“bla”,但事实并非如此,并且前端也没有出现故障迹象(可能是因为我失败了捕捉异常?)
【问题讨论】:
-
是的,您应该在您的
fetch承诺中添加.catch()。还要查看 devtools 的网络监视器,你在那里看到什么请求?您发出此请求的页面的 URL 是什么? -
您是否检查过远程服务器上的端口 5000 已暴露在网络中并且未被防火墙阻止?默认情况下,大多数设置不会自动向外界公开端口。
-
@azundo 我试过运行
sudo ufw allow from any to 18.222.109.76 port 5000 proto tcp,但我不确定这是否足够。 -
@Nickolay 我目前正在尝试弄清楚如何访问您建议的 devtools 的网络监视器,我对本机反应还是很陌生,所以,我还没有尝试过调试还没有。
-
糟糕,我分心了,忘记了你问过 React native 的问题!对不起。 netmonitor 的建议是假设您在浏览器中工作。
标签: python react-native post flask