2010-12-20 11 views
0

これで、python/djangoを使用して自分のローカルWebサーバーにjQuery .getJSONを使って簡単な呼び出しをしようとしています。使用されているアドレスは次のとおりです。私はこのURLにアクセスすると(実際の要素値/レイアウトを心配して、後に)結果として、JSONパケットを返すことができるシンプルなWebビューを作成しようとしていますjQuery getJSON Python/Djangoを使用した出力

http://localhost:8000/api/0.1/tonight-mobile.json?callback=jsonp1290277462296 

。だから私は、有効なJSONパケットを取り戻すのいずれかhttp://localhost:8000/api/0.1/tonight-mobile.jsonまたはhttp://localhost:8000/api/0.1/tonight-mobile.json&callback=jsonp1290277462296で、直接このURLにアクセスすることができる午前

$.getJSON("http://localhost:8000/api/0.1/tonight-mobile.json&callback=?", 
function(json){ 
    alert(json); 
    <!--$.each(json.items, function(i,item){ 
    });--> 
}); 

...

はここだけのデータを返す/警告での私のシンプルな試みです私はそれが私のnoobに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を介してではありません。誰かが私にある方向性を助けてくれるだろうか?

答えて

0

まず、callback = request.GET.get('callback=?', '')は、callbackの値を取得しません。

callback = request.GET.get('callback', None) 

動作が優れています。

この種のものをデバッグします。 Djangoのビュー機能にprint文を含めると、何が起きているのかを知ることができます。例:print repr(request.GET)は、GET辞書を見ることができるように、ビュー機能に入れるのに便利です。

+0

S.Lott、応答いただきありがとうございます。しかし、あなたの答えは私に何らかの結果を与えてくれないようです。私の見解では、エラーがあります。 'QueryDict'オブジェクトは呼び出し可能ではありません。 – user546459

+2

@ user546459:私は変更を行いました。あなたは "debugguing"をすることができます。あなたは別のものを試してみる。 'print'ステートメントを追加してください。実験。それは許されている、あなたは知っている。 –

関連する問題