我正在尝试将从 .py 文件打印的 Json 对象发送到 Jquery 的 getJson 方法,但是出了点问题。我从我的大项目中做了一些简单的例子,其中包含不工作的代码。一些帮助将不胜感激!
html文件:
<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文件:
$(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 文件:
import json
impact="pedro"
print json.dumps({'item1': impact})
关于这个问题,它不会在 $.getJSON 指令下方打印任何内容。我检查了浏览器,找到了脚本并通过 http 获得了 OK 状态。真的不知道会发生什么。抱歉,如果这是显而易见的事情,请提前感谢您提供的帮助。
我尝试使用带有一些尊重 json 格式行的 .txt 文件来执行此操作,并且效果很好。
----------
更新:解决方案
由于我使用的是 Django,因此它的工作方式与示例略有不同,所以我并没有直截了当地思考。就这样。
JS 文件应该调用您在 URLs.py 上的某个 url,该 url 将您重定向到 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>");
});
});
});
然后在views.py 中只处理你需要的信息,并使用JSON 将httpResponse 返回给JS 以将其处理到视图中。
def teste(request):
to_json = {
"item1": "pedro"
}
return HttpResponse(simplejson.dumps(to_json), mimetype='application/json')