Home > database >  Python Flask and JQuery.post Are Not Working Together
Python Flask and JQuery.post Are Not Working Together

Time:10-10

I am creating a very simple dashboard for automating a task. Security is not a concern here because I am only local hosting.

JQuery Code

$.post("/approve", data={"title":title,"content":content}, success=function(){
      window.location.reload(true)
});

Flask Code

@app.post('/approve')
def approve_topic():
  args = request.args
  print(args)
  json.dump(args, open("topics/" uuid4().hex ".json", "w"))
  return {"status":"clear"}

Result (the JSON file)

{}

Expected Result

{"title":"whatever the title is", "content":"whatever the content is"}

Any idea why this is happening? The first time I ran this it worked just fine, but now no matter what I reset or what I do it won't work.

CodePudding user response:

I just tested the code, it is working fine with request.form. Flask Code:

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)

jQuery Code:

$.post("http://localhost:5000/echo", {a: 1}, r=>console.log("response: ", r))
// Output: response:  {a: '1'}
  • Related