将JavaScript数组或对象发送到Django视图

时间:2018-10-09 14:20:25

标签: ajax django

我正在尝试通过AJAX将数组(或对象)发送到Django视图。

在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'
    });

我在Javascript中收到403禁止错误。我尝试了几件事,例如省略dataType / contentType,发送Javascript对象而不是数组等。

1 个答案:

答案 0 :(得分:1)

您不能将数组直接传递给url

使用jQuery.param(yourObject)

param()方法创建数组或对象的序列化表示,可以被php,ruby,django等各种框架理解。

再次将其转换为python

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

请注意,使用prase可能会丢失一些信息,因此在python中获取数据后,请重新检查数据。

相关问题