In my controller/request-handler, I have the following code:
def monkey(self, **kwargs):
cherrypy.response.headers['Content-Type'] = "application/json"
message = {"message" : "Hello World!" }
return message
monkey.exposed = True
And, in my view, I’ve got this javascript:
$(function() {
var body = document.getElementsByTagName("body")[0];
$.ajaxSetup({
scriptCharset : "utf-8",
contentType: "application/json; charset=utf-8"
});
$.post("http://localhost/wsgi/raspberry/monkey", "somePostData",
function(data) {
try{
var response = jQuery.parseJSON(data);
body.innerHTML += "<span class='notify'>" + response + "</span>";
}catch(e){
body.innerHTML += "<span class='error'>" + e + "</span>";
}
}
);
});
And finally, here's my problem. I get no JSON response and I'm not sure why.
Secondly, would someone be able to explain how to format data in my controller/request-handler response as a JSON response in the simplest way possible, without using tools?
Not sure what you mean by “without using tools” — Python is “a tool”, right?
With just Python and its standard library (2.6 or better), add at the top of your module
and change the
returnstatement to