Estoy creando un tablero muy simple para automatizar una tarea. La seguridad no es una preocupación aquí porque solo soy un anfitrión local.
Código JQuery
$.post("/approve", data={"title":title,"content":content}, success=function(){ window.location.reload(true) });Código de matraz
@app.post('/approve') def approve_topic(): args = request.args print(args) json.dump(args, open("topics/"+uuid4().hex+".json", "w")) return {"status":"clear"}Resultado (el archivo JSON)
{}Resultado Esperado
{"title":"whatever the title is", "content":"whatever the content is"}¿Alguna idea de por qué sucede esto? La primera vez que ejecuté esto funcionó bien, pero ahora no importa lo que reinicie o lo que haga, no funcionará.
Acabo de probar el código, funciona bien con request.form . Código del matraz:
from flask import Flask, request app = Flask(__name__) # you can ignore this function as you're doing request on same origin @app.after_request def allow_cors_origin(response): """Resolve CORS error""" response.headers.add("Access-Control-Allow-Origin", "*") response.headers.add("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,PATCH,OPTIONS") return response @app.route("/echo", methods=["POST"]) def echo(): data = request.form print(data) # Output: ImmutableMultiDict([('a', '1')]) return data app.run(debug=True)Código jQuery:
$.post("http://localhost:5000/echo", {a: 1}, r=>console.log("response: ", r)) // Output: response: {a: '1'}