2010-12-13 14 views
0

私は、サーバーからデータを取得するために、AJAX呼び出しを使用しています。サーバー上でジャンゴ解析する引数

$.ajax({ 
type: 'POST', 
url: '/simple/gd/', 
dataType: 'json', 
data: {t : "PL"}, 
success: function(data) { 
var newd = data['t']; 
    alert('Load was performed: ' + newd); 
} 
}); 

を、urls.pyは次のとおりです。

(r'^simple/gd/(?P<data>.*)$', 'simple.views.getData'), 

サーバーになってきたURLしかし、何らかの理由でgetData(リクエスト、データ)を "?t = PL"または "t = PL"で呼び出すことはできません。 "データ"パラメータとして。 'data'は常に空です。

私は間違っていますか?

答えて

1
:ような何かに

def getData(request, data): 
    print data 

タイプ: 'POST'を使用すると、データはURLとしてクエリに追加されません文字列。

代わりに、要求オブジェクトのPOST辞書に含まれています。

だからあなたのアラートを発射バックに何かを渡すためにあなたの線に沿ってJSONデータのものとして解釈できる文字列にレンダリングする必要があります。

(r'^simple/gd/$', 'simple.views.getData'), 

def getData(request): 
    posted_t = request.POST['t'] 
    # Do some stuff with posted_t 
    server_side_var = "Yay" 
    return HttpResponse(u"{t:%s}" % server_side_var) 
0

t=PLはパスの一部ではないため、クエリ文字列です(パスは、おおよそ、?の前のビット、クエリ文字列は?の後のビットです)。

個人的に、私は次のようにあなたのurls.pyを変更するお勧めします:

(r'^simple/gd/$', 'simple.views.getData'), 

その後、のようなものから、あなたのビュー機能を調整します

def getData(request): 
    print request.GET.get('t', None) 
+0

私の「データ」は、より複雑な場合は何を?たとえば、 data = {t: "me"、m:{a: "you"、b: "we"}} 私は全体として「データ」を取得し、Pythonで解析したいと考えています – Alex

+0

/my/you/we/- POST変数の読み込みで何が問題になるのですか? – PhoebeB

関連する問題