При отправке json через ajax появляются лишние символы в Django

Рейтинг: 0Ответов: 1Опубликовано: 27.06.2023

Не могу получить данные от пользователя.

JS:
$.ajax({
    url: '/api/v1/get-items',
    method: 'post',
    headers: {'X-CSRFToken': getCookie('csrftoken')},
    dataType: 'json',
    data: {
        'text': 'Hello',
        'url': $(location).attr("pathname"),
    },
    success: function(data){}
});
views.py:
def get_all_items(request):

    body_unicode = request.body
    print(body_unicode)

    return JsonResponse({'status': True})

Получаю в консоле:

b'text=Hello&url=%2Fabout-us%2F'

Если декодировать - request.body.decode('UTF-8') - получаю в консоле:

text=Hello&url=%2Fabout-us%2F

При переводе в json формат json.loads(body_unicode) вылетает ошибка .

Как перевести полученные данные от клиента в json?

Ответы

▲ 0

Ошибка была в отправке. Нужно было преобразовать в json при отправке

data: JSON.stringify({
        'text': 'Hello',
        'url': $(location).attr("pathname"),
    }),