i'm trying to send a Json object printed from a .py file to the getJson method of Jquery but something is going wrong. I made some simple examples out of my big project containing the code that is not working. Some help would be much appreciated!
Html File:
<html xmlns=" http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Request json test</title>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script src="/js/json-jquery.js" type="text/javascript"></script>
</head>
<body>
<a href="#" id="getdata-button">Get JSON Data</a>
<div id="showdata"></div>
</body>
</html>
JS file:
$(document).ready(function(){
$('#getdata-button').live('click', function(){
console.log("echo ")
$.getJSON("/js/getActive.py", function(data) {
console.log("echo "+ data)
$('#showdata').html("<p>item1="+data.item1+"</p>");
});
});
});
.py file:
import json
impact="pedro"
print json.dumps({'item1': impact})
About the problem it doesn't print anything below the $.getJSON instruction. I've checked on browser and the script is found and got OK status by http. Really don't know what might be going on. Sorry if it is something obvious and thank you in advance for the help you might give.
I tried doing this with a .txt file with some respecting json format lines and it works fine.
----------
UPDATE: Solution
Since I'm using Django it works a little different from the examples, I wasn't thinking straight. here it goes.
The JS file should call some url that you have on your URLs.py that redirects you for some function in views.py
$(document).ready(function(){
//attach a jQuery live event to the button
$('#getdata-button').live('click', function(){
console.log("echo ")
$.getJSON("teste.html", function(data) {
console.log("echo "+ data)
//alert(data); //uncomment this for debug
//alert (data.item1+" "+data.item2+" "+data.item3); //further debug
$('#showdata').html("<p>teste="+data.item1+"</p>");
});
});
});
Then in views.py just deal the information you need and make an httpResponse with the JSON back to the JS to process it to the view.
def teste(request):
to_json = {
"item1": "pedro"
}
return HttpResponse(simplejson.dumps(to_json), mimetype='application/json')