我正在尝试通过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对象而不是数组等。
答案 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中获取数据后,请重新检查数据。