Se supone que mi programa funciona así: el usuario completa el formulario y presiona el botón, el script JS lee el formulario en una matriz y lo envía al servidor con ajax, el servidor Python genera una imagen con información del formulario, cuando termina, JS carga la imagen.
El problema es que la secuencia de comandos funciona solo una vez, a menos que actualice la página (entonces nuevamente funciona solo una vez). Funciona según lo previsto solo con las herramientas de desarrollo de google-chrome abiertas. ¿Cuál podría ser la razón de eso?
función js:
function readSendLayers(ev) { (ev||event).preventDefault(); var arr_layers = ['100', '50', '100']; var str_arr_layers = JSON.stringify({arr_layers: arr_layers}); $.ajax({ type: 'POST', url:'/layersPic', cache: false, data: JSON.stringify(str_arr_layers), contentType: "application/json; charset=utf-8", error: function() { alert('Unexpected error'); } }).done(function() { //change arch__pic with generated picture $("#arch__pic").attr("src", "../static/layer_pictures/0.png"); }); };pitón:
from drawTree import * from flask import Flask, render_template, request import json app = Flask(__name__,template_folder='template') @app.route('/') @app.route('/index.html') def index(): return render_template('index.html') @app.route('/layersPic', methods=['POST']) def layersPic(): if request.method == 'POST': output = request.get_json() result = json.loads(output) drawTree(result['arr_layers']) return ("",204) if __name__ == "__main__": app.run(debug=False)ACTUALIZACIÓN: agregué datos únicos al src de la imagen y esto parece funcionar.
$("#arch__pic").attr("src", "../static/layer_pictures/0.png"+ '?' + (new Date()).getTime());