Wysyłam żądanie POST AJAX przy użyciu Angularjs i jego modułu $ http do serwera Django. Oto przykład:wysyłanie danych z angularjs do django
$http({
method: 'POST',
url: '/url/',
data: 'test data'
}).
success(function(data, status, headers, config) {
doSomeStuffWhenSuccess();
});
Problem pojawia się w Django. Bez względu na to, co wysyłam, dane są zawsze kluczem do obiektu, a wartość tego zawsze jest pustą listą.
<QueryDict: {u'test data': [u'']}>
Nie mam pojęcia dlaczego. czego mi brakuje?
Używam prawie domyślnie stworzonej aplikacji Django tylko z domyślnymi middleware. Stworzyłem tylko widok i ustawiłem URL w konfiguracji adresu URL. Wersja Django to 1.3. I skonfigurowałem moduł $ http, aby zawsze wysyłać nagłówek zawierający token csrf, aby zadowolić Django.
Dzięki temu działa! Ale czy mógłbyś wyjaśnić, dlaczego django myśli o swoich danych z wąskimi kreskami? A jeśli można go dostosować? – davekr
request.GET i request.POST zawierają wstępnie przetworzone dane klucz/wartość - jeśli chcesz dane surowe (takie jak JSON lub zwykły tekst) spróbuj: request.raw_post_data –