Итак, я пытаюсь сделать простой вызов, используя jQuery .getJSON, на свой локальный веб-сервер, используя python / django для обслуживания своих запросов. Используемый адрес:
http://localhost:8000/api/0.1/tonight-mobile.json?callback=jsonp1290277462296
Я пытаюсь написать простое веб-представление, которое может получить доступ к этому URL-адресу и вернуть в результате JSON-пакет (беспокоюсь о фактических значениях элементов / макете позже).
Вот моя простая попытка просто предупредить / вернуть данные:
$.getJSON("http://localhost:8000/api/0.1/tonight-mobile.json&callback=?",
function(json){
alert(json);
<!--$.each(json.items, function(i,item){
});-->
});
Я могу получить доступ к этому URL-адресу напрямую: http://localhost:8000/api/0.1/tonight-mobile.json или http://localhost:8000/api/0.1/tonight-mobile.json&callback=jsonp1290277462296 и получить действительный пакет 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. Может ли кто-нибудь помочь мне в каком-то направлении?