【问题标题】:POST request from react native does not reach my flask server来自 react native 的 POST 请求没有到达我的烧瓶服务器
【发布时间】: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


【解决方案1】:

所以我终于想通了。显然是因为我使用的是远程亚马逊服务器,我不得不在亚马逊界面上打开它的端口。

在我这样做之后,它完美无缺。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 2019-07-28
    • 2018-11-26
    • 2016-05-01
    • 1970-01-01
    • 2022-10-12
    • 2019-12-22
    • 2021-08-10
    相关资源
    最近更新 更多