带有 Postgres DB 和 React FrontEnd 的 Flask API 请求不起作用

我最近将 flask 应用程序部署到 Heroku 并成功创建了数据库,我遇到了一个问题,我使用 Postman 测试了 GET 和 POST 请求,一切都按预期工作。但是,GET 和 POST 请求在使用 fetch 或 axios 时不起作用。当我尝试进行这些调用时,我从 Heroku cli 收到此错误:

2021-08-01T19:12:40.268303+00:00 app[web.1]: 10.5.162.164 - - [01/Aug/2021:19:12:40 +0000] "POST /login HTTP/1.1" 500 290 "http://localhost:3000/dashboard" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/92.0.4515.107 Safari/537.36"
2021-08-01T19:13:24.814075+00:00 heroku[router]: at=info method=POST path="/register" host=phonica-api.herokuapp.com request_id=e0fd759f-0de6-4b17-9ccf-382910d8e6f7 fwd="127.0.0.1,68.56.194.182" dyno=web.1 connect=1ms service=4ms status=500 bytes=541 protocol=https
2021-08-01T19:13:24.811017+00:00 app[web.1]: [2021-08-01 19:13:24,810] ERROR in app: Exception on /register [POST]
2021-08-01T19:13:24.811024+00:00 app[web.1]: Traceback (most recent call last):
2021-08-01T19:13:24.811025+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py",line 2446,in wsgi_app
2021-08-01T19:13:24.811026+00:00 app[web.1]: ctx.push()
2021-08-01T19:13:24.811026+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/ctx.py",line 390,in push
2021-08-01T19:13:24.811027+00:00 app[web.1]: self.session = session_interface.open_session(self.app,self.request)
2021-08-01T19:13:24.811028+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask_session/sessions.py",line 334,in open_session
2021-08-01T19:13:24.811029+00:00 app[web.1]: data = self.cache.get(self.key_prefix + sid)
2021-08-01T19:13:24.811029+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/cachelib/file.py",line 127,in get
2021-08-01T19:13:24.811030+00:00 app[web.1]: return pickle.load(f)
2021-08-01T19:13:24.811035+00:00 app[web.1]: ValueError: unsupported pickle protocol: 5
2021-08-01T19:13:24.811638+00:00 app[web.1]: [2021-08-01 19:13:24,811] ERROR in app: Request finalizing failed with an error while handling an error
2021-08-01T19:13:24.811639+00:00 app[web.1]: Traceback (most recent call last):
2021-08-01T19:13:24.811640+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py",in wsgi_app
2021-08-01T19:13:24.811640+00:00 app[web.1]: ctx.push()
2021-08-01T19:13:24.811640+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/ctx.py",in push
2021-08-01T19:13:24.811641+00:00 app[web.1]: self.session = session_interface.open_session(self.app,self.request)
2021-08-01T19:13:24.811641+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask_session/sessions.py",in open_session
2021-08-01T19:13:24.811642+00:00 app[web.1]: data = self.cache.get(self.key_prefix + sid)
2021-08-01T19:13:24.811642+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/cachelib/file.py",in get
2021-08-01T19:13:24.811642+00:00 app[web.1]: return pickle.load(f)
2021-08-01T19:13:24.811643+00:00 app[web.1]: ValueError: unsupported pickle protocol: 5
2021-08-01T19:13:24.811643+00:00 app[web.1]: 
2021-08-01T19:13:24.811644+00:00 app[web.1]: During handling of the above exception,another exception occurred:
2021-08-01T19:13:24.811644+00:00 app[web.1]: 
2021-08-01T19:13:24.811644+00:00 app[web.1]: Traceback (most recent call last):
2021-08-01T19:13:24.811645+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py",line 1970,in finalize_request
2021-08-01T19:13:24.811645+00:00 app[web.1]: response = self.process_response(response)
2021-08-01T19:13:24.811645+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py",line 2267,in process_response
2021-08-01T19:13:24.811646+00:00 app[web.1]: response = handler(response)
2021-08-01T19:13:24.811647+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask_login/login_manager.py",line 399,in _update_remember_cookie
2021-08-01T19:13:24.811647+00:00 app[web.1]: if '_remember' not in session and \
2021-08-01T19:13:24.811647+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/werkzeug/local.py",line 379,in <lambda>
2021-08-01T19:13:24.811648+00:00 app[web.1]: __contains__ = lambda x,i: i in x._get_current_object()
2021-08-01T19:13:24.811698+00:00 app[web.1]: TypeError: argument of type 'NoneType' is not iterable

这是我如何使用 fetch 发出请求:

 const formData = new FormData();

    formData.append('password',password);
    formData.append('username',username);

    return fetch("/login",{
        method: 'post',body: formData
    })

使用 axios:

 const response = await axios
        .post("/login",{
            username,password,});
    if (response.data.token) {
        localStorage.setItem("user",JSON.stringify(response.data));
    }
    return response.data;

任何帮助将不胜感激,谢谢!

jiulongrushui 回答:带有 Postgres DB 和 React FrontEnd 的 Flask API 请求不起作用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/598.html

大家都在问