es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python Flask no retorna los datos del Post a React.

Tengo un problema para hacer que mi backend de Flask envíe una respuesta a mi frontend de REACT js. A continuación se muestra el código utilizado en el frontend de REACT js para crear una solicitud de publicación enviando la cadena ‘message’. El backend de Flask debería enviar la cadena de vuelta y se creará un registro en la consola que muestra la cadena.

REACT JS

        const response2 = await fetch(${process.env.REACT_APP_TEST}, {
            method: 'POST',
            credentials: 'include',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify('message'),
        });
    console.log('La respuesta fue....', response2);

Flask

@app.route("/", methods=['GET', 'POST'])
@cross_origin(supports_credentials=True)
def index():
    print('Running')
    sent_data = request.get_json()
    print(sent_data)
    if sent_data != 'message':
        return ({"hello": ['no']})
    else:
        return (sent_data)

Los datos se recogen en el backend e imprime “message”, por lo que la información está llegando a Flask.
El problema es que en lugar de recibir la cadena ‘message’ registrada en la consola de React js, obtengo…

La respuesta fue.. {type: "cors", url: "http://127.0.0.1:5000/", redirected: false, status: 200, ok: true, statusText: "OK", headers: Headers, body: ReadableStream, bodyUsed: false}

Si algo no está claro, avísame y agradezco la ayuda, ¡gracias!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema con el código es que la respuesta recibida en la consola de React JS no se está convirtiendo al formato de cadena de texto. Para ver la respuesta como una cadena de texto, el código puede modificarse de la siguiente manera:

    const response2 = await fetch(`${process.env.REACT_APP_TEST}`,{
        method: 'POST',
        credentials: 'include',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify('message'),
    })
    .then(response => response.text()) // convertir la respuesta a texto
    .then(data => console.log('La respuesta fue....', data)); // registrar la respuesta como cadena de texto
    

    Al agregar .then(response => response.text()) después de la solicitud fetch, la respuesta se convierte en formato de texto plano. La parte .then(data => console.log('La respuesta fue....', data)) registrará entonces la respuesta como una cadena de texto en la consola. Esta modificación debería permitir obtener la salida deseada.

Comments are closed.