boardkeystown
boardkeystown

Reputation: 184

How to do a post to flask from a button

How do I make a post request from java to flask? Why can I get the data sent to the server?


 <button name="send" id = "sendbutton">Send</button>

document.getElementById("sendbutton").addEventListener('click', () => {
    var image = canvas.toDataURL();
    var r = new XMLHttpRequest();
    r.open("POST", "http://127.0.0.1:5000/truthMask", true);
    r.onreadystatechange = function () {
        if (r.readyState != 4 || r.status != 200) return;
        //alert("Success: " + r.responseText);
        console.log("sent");
    };
    r.send(input="test");
});

@app.route('/truthMask', methods=['POST'])
def set_truthMask():
    print("Got the data")
    foo = request.args.get("input")
    print("Print the data: {}".format(foo))
    return "sent"

Upvotes: 0

Views: 1437

Answers (1)

Akshay Jain
Akshay Jain

Reputation: 790

JS Code

document.getElementById("sendbutton").addEventListener('click', () => {
    var image = canvas.toDataURL();
    var r = new XMLHttpRequest();
    r.open("POST", "http://127.0.0.1:5000/truthMask", true);
    r.onreadystatechange = function () {
        if (r.readyState != 4 || r.status != 200) return;
        //alert("Success: " + r.responseText);
        console.log("sent");
    };
    // Send data in below way from JS
    r.send(JSON.stringify({"input": "test"}));
});

Python Flask API

import json

@app.route('/truthMask', methods=['POST'])
def set_truthMask():
    print("Got the data")
    foo = json.loads(request.data.decode())["input"]
    print("Print the data: {}".format(foo))
    return "sent"

Don't forget to import json

Upvotes: 7

Related Questions