對於一個bookmarklet項目我試圖從我的服務器(這自然是在不同的域中)使用jQuery來運行Django動力系統來獲取JSON數據。如何從Django中輸出JSON並從跨域調用jQuery?
根據jQuery文檔:「從jQuery 1.2開始,如果您指定了JSONP回調,您可以加載位於另一個域的JSON數據,可以這樣做:」myurl?callback =?「。jQuery自動替換?調用正確的方法名稱,調用指定的回調函數。「
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any& format=json&jsoncallback=?",
function(data){
alert(data.title);
});
它打印在一個警告窗口返回的數據,例如:而且比如我可以成功地在我的Firebug的控制檯中使用下面的代碼片斷測試'最近上傳標籤的貓'。然而,當我嘗試用我的服務器類似的代碼,我完全不得到任何東西:
$.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檢索它?我上面的錯誤是什麼?
,是新來的Django和jQuery,我嘗試了一個 「Hello World」 使用django1.3,從我的jQuery功能我怎麼能叫Python的功能(在views.py) – Jisson 2011-09-30 09:44:40
jQuery是「投票/ randomTest '$ .getJSON(「http://mydjango.yafz.org/polls/randomTest?callback=?」在你的urls.py中取回一個url? – Jisson 2011-09-30 09:45:44
我可以直接從jquery函數調用python函數嗎? – Jisson 2011-09-30 09:46:53