Axios: Публикация не отправляет данные должным образом

Созданный на 18 авг. 2016  ·  3Комментарии  ·  Источник: axios/axios

Привет,
У меня есть приложение django, в котором я хочу выполнить POST, нажав на <button> которого нет в <form>
Проблема в том, что данные, отправленные для функции просмотра, не отправляются должным образом.

Вот код axios:

 axios({
        method: 'post',
        url: '/url/to/view'
        data: {
            obj_id: objectid,
            content_type: contenttype,
            like: !is_liked
        },
        xsrfCookieName: 'csrftoken',
        xsrfHeaderName: 'X-CSRFToken',
        headers: {'X-Requested-With': 'XMLHttpRequest',
                  'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
    }).then(function (response) { 
        console.log(response);
    });

и вот код просмотра:

def my_view(request):
    print request.POST
    return HttpResponse('XX')

Я не могу получить доступ к данным request.POST, потому что ключ - это весь dict и пустой список значений:
<QueryDict: {u'{"obj_id":"182","content_type":"video","like":true}': [u'']}>

Самый полезный комментарий

Проблема в том, что по умолчанию объекты сериализуются в JSON, а вам нужно отправлять данные в формате application / x-www-form-urlencoded. Самое простое решение - использовать такую ​​библиотеку, как qs :

var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 });

См. Этот комментарий для подробностей.

Надеюсь это поможет!

Все 3 Комментарий

Проблема в том, что по умолчанию объекты сериализуются в JSON, а вам нужно отправлять данные в формате application / x-www-form-urlencoded. Самое простое решение - использовать такую ​​библиотеку, как qs :

var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 });

См. Этот комментарий для подробностей.

Надеюсь это поможет!

Другой способ - поместить значения в объект FormData и опубликовать

Я написал небольшую оболочку aroud axios, которая отлично работает с настройками Django> 1.8 по умолчанию. Надеюсь, это кому-то поможет!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги