Soy nuevo en JavaScript y las solicitudes http, tal vez estoy haciendo algo bastante mal aquí, espero que alguien pueda ayudarme.
Estoy tratando de enviar una solicitud POST a mi aplicación de matraz usando XMLHttpRequest, aquí está el código JS:
finishBuy.addEventListener('click', () => { price = price * 1000000000000000000 ethereum .request({ // Some code }) .then( function (txHash) { console.log('Hash: ' + txHash) var xhr = new XMLHttpRequest(); xhr.open("POST", "/addTokens"); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify({ hash: txHash })); window.location.href = "/addTokens" } ) .catch((error) => console.error);})Y este es mi código Python
@app.route("/") def index(): return render_template("index.html") @app.route("/addTokens", methods=["GET", "POST"]) def addTokens(): if request.method == "GET": return render_template("checkingPayment.html") if request.method == "POST": hash = request.get_json() print(f"Hash: {hash}") print("Redirecting to index") return redirect(url_for('index'))Flask imprime "Redireccionando al índice", pero los navegadores nunca redireccionan a "/", de hecho, no hace nada.
No quiero PUBLICAR la información usando formularios html, estoy casi seguro de que esto tiene que ver con la solicitud http que estoy enviando, pero no sé qué estoy haciendo mal, gracias de antemano.
Esta línea envía una solicitud XHR con el método 'POST'.
xhr.open("POST", "/addTokens");Presionas estas líneas en tu servidor:
print("Redirecting to index") return redirect(url_for('index'))Por lo tanto, envía una respuesta de redireccionamiento, sin embargo, no la trata en su JS. (Klaus D me apostó, pero XHR no hace redireccionamientos).
Luego realiza una solicitud 'GET' de regreso a /addTokens
window.location.href = "/addTokens"Es por eso que nunca vuelves a tu índice.