【发布时间】:2011-05-28 10:24:55
【问题描述】:
所以,我正在尝试使用 jQuery .getJSON 对我的本地 Web 服务器进行一个简单的调用,使用 python/django 来提供它的请求。正在使用的地址是:
http://localhost:8000/api/0.1/tonight-mobile.json?callback=jsonp1290277462296
我正在尝试编写一个简单的 Web 视图,它可以访问此 url 并返回一个 JSON 数据包作为结果(稍后担心实际的元素值/布局)。
这是我在提醒/返回数据方面的简单尝试:
$.getJSON("http://localhost:8000/api/0.1/tonight-mobile.json&callback=?",
function(json){
alert(json);
<!--$.each(json.items, function(i,item){
});-->
});
我可以通过http://localhost:8000/api/0.1/tonight-mobile.json 或http://localhost:8000/api/0.1/tonight-mobile.json&callback=jsonp1290277462296 直接访问此 URL,并取回一个有效的 JSON 数据包...所以我假设它在我的菜鸟 javascript 中:)
生成此响应的我的 views.py 函数如下所示:
def tonight_mobile(request):
callback = request.GET.get('callback=?', '')
def with_rank(rank, place):
return (rank > 0)
place_data = dict(
Places = [make_mobile_place_dict(request, p) for p in Place.objects.all()]
)
xml_bytes = json.dumps(place_data)
xml_bytes = callback + '(' + xml_bytes + ');'
return HttpResponse(xml_bytes, mimetype="application/json")
带有对应的urls.py配置:
(r'^tonight-mobile.json','iphone_api.views.tonight_mobile'),
我仍然对如何使用回调有些困惑,所以也许这就是我的问题所在。请注意,我可以直接调用给我响应的“blah.json”文件,但不能通过有线 URL。有人可以帮我指明方向吗?
【问题讨论】:
标签: python django-views jsonp getjson