Отправка массива JavaScript или объекта в представление Django - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь отправить через AJAX массив (или объект) в мой Django View.

В файле JS :

    var dataArr = [];
    dataArr.push({'status':'active'});
    ...
    var json = JSON.stringify(dataArr);
    ...
    $.ajax({
        type: "POST",
        url: "/filter/",
        data: {
            'filter_text' : json,
            'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val()
        },
        success: filterSuccess,
        dataType: 'json',
        contentType: 'application/json'
    });

Я получаю403 Запрещенная ошибка в Javascript.Я пробовал несколько вещей, например, опуская dataType / contentType, отправляя объект Javascript вместо массива и т. Д.

1 Ответ

0 голосов
/ 09 октября 2018

Вы не можете передать массив напрямую в URL,

Использовать jQuery.param(yourObject).

Метод param () создает сериализованное представление массива или объекта, которые могут быть поняты различными средами, такими как php, ruby, django и т. Д.

Для повторного преобразования его в python

from urllib import parse
value = parse.parse_qs(self.request.POST.get('name'))

Обратите внимание, что с помощью prase вы можете потерять некоторую информацию, поэтому перепроверьте свои данные после получения их в python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...