Estoy enviando una solicitud POST AJAX usando Angularjs y su módulo $ http al servidor Django. Aquí hay un ejemplo:enviando datos desde angularjs a django
$http({
method: 'POST',
url: '/url/',
data: 'test data'
}).
success(function(data, status, headers, config) {
doSomeStuffWhenSuccess();
});
El problema es lo que obtengo en Django. No importa lo que envíe, la información siempre es la clave del objeto QueryDict
y el valor de eso siempre es una lista vacía.
<QueryDict: {u'test data': [u'']}>
No tengo ni idea de por qué. ¿Qué me estoy perdiendo?
Utilizo la aplicación Django creada casi por defecto con solo middlewares predeterminados. Creé solo una vista y establecí una url en la configuración de url. La versión de Django es 1.3. Y configuré el módulo $ http de angular para enviar siempre un encabezado que contenga el token csrf para satisfacer a Django.
¡Gracias esto funciona! ¿Pero podría explicar por qué django piensa que su información codificada en urinate? Y si es posible personalizarlo? – davekr
request.GET y request.POST contienen datos preprocesados de clave/valor; si desea datos brutos (como JSON o texto sin formato), intente: request.raw_post_data –