5

Angularjs とその $http モジュールを使用して POST AJAX リクエストを Django サーバーに送信しています。次に例を示します。

$http({ 
        method: 'POST', 
        url: '/url/', 
        data: 'test data'
  }).
  success(function(data, status, headers, config) {
        doSomeStuffWhenSuccess();
  });

問題は、Django で得られるものです。何を送信しても、データは常にQueryDictオブジェクトのキーであり、その値は常に空のリストです。

<QueryDict: {u'test data': [u'']}>

理由はわかりません。私は何が欠けていますか?

デフォルトのミドルウェアのみを使用して、ほぼデフォルトで作成された Django アプリケーションを使用しています。ビューのみを作成し、url 構成で url を設定しました。Django のバージョンは 1.3 です。そして、Djangoを満たすためにcsrfトークンを含むヘッダーを常に送信するようにAngularの$ httpモジュールを構成しました。

4

2 に答える 2

7

これをjQuery param 関数で解決しました。よりエレガントなソリューションだと思います。

$http({ 
    method: 'POST', 
    url: '/url/', 
    data: $.param({test: data})
})

今では私が望んでいたように動作します。

于 2012-06-29T20:09:49.220 に答える
6

django は、あなたが urlencoded フォームを送信していると考えていると思います。キー=値&キー2=値2...

あなたが試してみたい場合:

$http({ 
    method: 'POST', 
    url: '/url/', 
    data: 'test=data'
})

あなたは得るべきです

<QueryDict: {u'test': [u'data']}>

次のようにして、いつでもデータ (生の本文コンテンツ) を取得できます。

request.body

これがあなたが探しているものであることを願っています。

于 2012-05-09T17:19:11.230 に答える