Для проекта букмарклета я пытаюсь получить данные JSON, используя jQuery, с моего сервера (который, естественно, находится в другом домене), работающего под управлением системы на основе Django.
Согласно документации jQuery: «Начиная с jQuery 1.2, вы можете загружать данные JSON, расположенные в другом домене, если вы укажете обратный вызов JSONP, что можно сделать так:« myurl? Callback =? ». JQuery автоматически заменяет? с правильным именем метода для вызова, вызывая указанный вами обратный вызов. " И, например, я могу успешно протестировать его в моей консоли Firebug, используя следующий фрагмент:
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any& format=json&jsoncallback=?",
function(data){
alert(data.title);
});
Печатает возвращенные данные в окне предупреждения, например, «Последние добавления с тегом кошка». Однако, когда я пытаюсь подобный код с моим сервером , я ничего не получаю вообще:
$.getJSON("http://mydjango.yafz.org/randomTest?jsoncallback=?",
function(data){
alert(data.title);
});
Нет окон предупреждений, а в строке состояния Firebug написано «Передача данных с mydjango.yafz.org ...» и продолжает ждать. На стороне сервера у меня это:
def randomTest(request):
somelist = ['title', 'This is a constant result']
encoded = json.dumps(somelist)
response = HttpResponse(encoded, mimetype = "application/json")
return response
Я тоже пытался безуспешно:
def randomTest(request):
if request.is_ajax() == True:
req = {}
req ['title'] = 'This is a constant result.'
response = json.dumps(req)
return HttpResponse(response, mimetype = "application/json")
Итак, вкратце: каков предлагаемый метод возврата части данных из представления Django и извлечения его с использованием jQuery в междоменной манере? Какие мои ошибки выше?