Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

316
Views
Depuración de la conexión React/Flask con SyntaxError: token inesperado <en JSON en la posición 0

Estoy siguiendo https://blog.miguelgrinberg.com/post/how-to-create-a-react--flask-project intentando conectar un backend de Flask simple con ReactJS después de usar npx create-react-app y agregar un archivo de un solo matraz.

package.json

Configuré un proxy en "proxy": "http://localhost:5000" con un nuevo comando de script de yarn start-backend .

 "scripts": { "start": "react-scripts start", "start-backend": "cd app && python3 app.py", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" },

nav.js

Configuré un Button usando MaterialUI que llama a una función para registrar una respuesta JSON.

 class Nav extends React.Component { clicked() { fetch('/').then(res => { console.log(res.json()); }).then(data => { console.log(data); }) } render() { return ( <Box sx={{ flexGrow: 1}}> <AppBar position="static"> <Toolbar> <SignUpForm onClick={() => this.clicked()} /> </Toolbar> </AppBar> </Box> ) } }

En el directorio de nivel superior, he creado un directorio llamado app que tiene un archivo app.py con el siguiente código.

 from flask import Flask app = Flask(__name__) @app.route("/") def home(): return {"msg": "homepage from the backend."} if __name__ == "__main__": app.run(port=5000, debug=True)

Cuando uso yarn start y yarn start-backend y hago clic en el botón, aparece el siguiente error

 Promise {<pending>} nav.js:14 undefined VM1769:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

Intentando depurar, pero desafortunadamente no llego a ninguna parte. Hay preguntas relacionadas, pero nada parece funcionar. Intenté mover el archivo del matraz al directorio de nivel superior, al público, usando http://localhost:5000/ .

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

fetch('/', { headers : { 'Content-Type': 'application/json', 'Accept': 'application/json' } }).then(res => { console.log(res.json()); }).then(data => { console.log(data); })
about 4 years ago · Juan Pablo Isaza Report

0

Ok, siendo nuevo en JavaScript/ReactJS, parece que me faltaban dos cosas

  1. No tuve una devolución para la Promise , lo que parece extraño porque pensé que no tenías que devolver las cosas.

y

  1. Cambiar la ruta de / a /api/test parece funcionar.

Tendré que profundizar más para entender, pero por ahora resuelve mi problema.

Aquí está el código que ha cambiado

 clicked() { fetch('/api/test') .then(res => {return res.json()} ) .then( data => { console.log(data) }) }

y

 @app.route("/api/test") def home(): return {"msg": "homepage from the backend."}
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!