json.decoder.JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (символ 0) ajax-запрос - PullRequest
0 голосов
/ 15 января 2019

У меня есть запрос ajax, и в представлении django у меня есть следующие распечатки и выходные данные.

У меня есть ошибка в этой строке, и я не могу понять, почему.

parsed_json = json.loads(request.body)

Я пытался декодировать тело запроса с помощью utf8, но ничего не изменилось

AJAX CALL:

$("#add_user_button").click(function (event) {
    event.preventDefault();  
    $.ajax({
        type: "POST",
        url: '/user/',
        data:
            {
                'action': "addUser",
                'username': $('#id_username').val(),
                'password': $('#id_password').val(),
                'groups': $('#id_groups').val()
            }
        ,
        contentType: 'application/json; charset=utf-8',
        processData: false,
    });
}

ДЖАНГО ПОСМОТРЕТЬ ПРИНТЫ:

print(request.POST.get("username"))
#print(request.encoding) #returns none
print("Request body is :")
print(request.body)
print(type(request.body))

ВЫХОДЫ:

hello
Request body is :
b'username=hello&password=world&csrfmiddlewaretoken=&addUser=Add+User'
<class 'bytes'>

1 Ответ

0 голосов
/ 15 января 2019

Если вы проанализируете тело вашего запроса, то заметите, что это не JSON, чтобы отправить JSON, вы должны закодировать его в своем запросе ajax от вашего объекта.

$("#add_user_button").click(function (event) {
    event.preventDefault();  
    $.ajax({
        type: "POST",
        url: '/user/',
        data:
            JSON.stringify({ // <--here
                'action': "addUser",
                'username': $('#id_username').val(),
                'password': $('#id_password').val(),
                'groups': $('#id_groups').val()
            })
        ,
        contentType: 'application/json; charset=utf-8'
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...