Sto inviando una richiesta POST AJAX utilizzando Angularjs e il suo modulo $ http al server Django. Ecco un esempio:invio di dati da angularjs a django
$http({
method: 'POST',
url: '/url/',
data: 'test data'
}).
success(function(data, status, headers, config) {
doSomeStuffWhenSuccess();
});
Il problema è ciò che ottengo in Django. Qualunque cosa io invii i dati è sempre la chiave dell'oggetto QueryDict
e il valore di questo è sempre una lista vuota.
<QueryDict: {u'test data': [u'']}>
Non ho idea del perché. Cosa mi manca?
Io uso quasi l'applicazione Django creata in modo predefinito con solo il middleware predefinito. Ho creato solo una vista e impostato un url in url config. La versione di Django è 1.3. E ho configurato il modulo $ http di angular per inviare sempre un'intestazione che contiene un token csrf per soddisfare Django.
Grazie funziona! Ma potresti spiegare perché Django pensa ai suoi dati urlocati? E se è possibile personalizzarlo? – davekr
request.GET e request.POST contengono dati chiave/valore preelaborati: se vuoi dati grezzi (come JSON o testo normale) prova: request.raw_post_data –