A Flask React GET kérés sikertelen, de a POST kérés sikeres

szavazat
0

Kicsit kezdő vagyok a React számára. Kidolgoztam egy Flask hátteret, és most szeretném összekapcsolni a Reactal az előlap számára.

használom fetch a Reaktusban, hogy elkészítse a GET kérést. Amikor elolvastam az adatokat, a szöveg vagy a válasz, amikor felhívtam response.text() az a index.html fájl a public alkalmazásom könyvtára

Itt van a reagáló kódom:

componentDidMount() {
    fetch('/')
      .then(response => {
        console.log(response.text()) //Here is the text() i said before
        this.setState({ snippets: response.data })
      })
      .catch(error=>{
        console.log(error)
      })
  }

Itt van a lombik alkalmazás MRE:

@app.route('/')
def index():
    return {'snippets':['blah','blaha']

Meghatalmazottom package.json

    proxy: http://127.0.0.1:5000/

A lombik hátlapja az 5000-es porton fut, és a 3000-es porton reagál

Egy dolog, amit meg kell jegyezni, hogy egy POST kérés (től <form> ) proxyba kerülnek a háttérkiszolgálóra, és a POST kérés tartalmát le tudom tölteni a lombikban. Ez a GET kérés a fetch ez nem működik.

Könyvtárstruktúra:

-env
-getcode
  -templates
  -static
  -__init__.py
  -routes.py
-getcode-client
  -src
  -public
run.py

Itt getcode a lombik alkalmazás könyvtára és getcode-client tartalmazza a create-react-app

MEGJEGYZÉS: Szintén megpróbáltam beállítani egy ilyen kézi proxyt: https://create-react-app.dev/docs/proxying-api-requests-in-development/#configuring-the-proxy-manually

de most a react alkalmazás nem jelenik meg. teljesen megmutatja a lombik hátterének json outputját.

A kérdést 12/05/2020 12:30
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

Mivel CRA-t használ, javasolnám a proxybeállítás használatát.

Ha azt szeretné, hogy a fejlesztő kiszolgáló proxy-ra tegyen proxyt a fejlesztés alatt álló API-kiszolgálóra, akkor adjon hozzá egy proxy mezőt a package.json fájlhoz, például:

"proxy": "http://localhost:4000",

Az Ön esetében ez az 5000-es porton lesz.

Itt többet a témáról.

A termelés során azonban azt javasolnám, hogy az nginx-et vagy az apache-t használja a jövőbeni problémák elkerülése érdekében.

Válaszolt 15/05/2020 10:57
a forrás felhasználó

szavazat
0

Nem vagyok benne biztos, de úgy gondolom, hogy a probléma az, hogy a Rehost és a Flask egyaránt használja a localhoston, és nem adja meg a portot a fetch kérések, próbáld ki ezt:

componentDidMount() {
    fetch('/:5000')
      .then(response => {
        console.log(response.text()) //Here is the text() i said before
        this.setState({ snippets: response.data })
      })
      .catch(error=>{
        console.log(error)
      })
  }
Válaszolt 15/05/2020 10:49
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more