I have a use case where is need to post a request from my javascript to python.wsgi, I want to send request data as json.
in my json the code looks like :
var aclient = HttpClient();
var pay_load = {what:"USERS", uname:username, password:pwd, index:"0"};
setTimeout(aClient.get("POST",alluserUrl, getAllUsersCallBack, JSON.stringify(pay_load)), 50);
where aclient.get is :
var HttpClient = function()
{
this.get = function(aMethod, aUrl, aCallback, payload) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function() {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
{
//console.log("triggering callback");
aCallback(anHttpRequest.responseText);
//return anHttpRequest.responseText;
}
else
{
//console.log("not 200");
//console.log(anHttpRequest.status);
//aCallback(sample);
//console.log(sample);
}
};
if ("GET" == aMethod)
{
anHttpRequest.open("GET", aUrl, true);
anHttpRequest.setRequestHeader('content-type', 'application/json');
anHttpRequest.setRequestHeader('Access-Control-Allow-Headers', '*');
anHttpRequest.setRequestHeader('Access-Control-Allow-Origin', '*');
anHttpRequest.send(payload);
}
else if ("POST" == aMethod)
{
anHttpRequest.open("POST", aUrl , true);
anHttpRequest.setRequestHeader("content-type", "application/json");
anHttpRequest.setRequestHeader('Access-Control-Allow-Headers', '*');
anHttpRequest.setRequestHeader('Access-Control-Allow-Origin', '*');
anHttpRequest.send(payload);
}
};
};
in python wsgi I am trying to decode the post data as :
def handlePost(environ, start_response):
request_body_size = int(environ.get('Content-Length', 0))
request_body = environ['wsgi.input'].read(request_body_size)
data = json.loads(request_body)
what = data['what']
but it gives me error saying failed to load json.