bla*_*aze 3 django ajax jquery django-rest-framework
我需要使用django-restframework-bulk mixins将对象列表发送到视图:
class APIPicksView(mixins.ListModelMixin,
bulk_mixins.BulkCreateModelMixin,
generics.GenericAPIView):
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
print(type(request.DATA)) /* Should be list */
if isinstance(request.DATA, list):
# Custom logic here
Run Code Online (Sandbox Code Playgroud)
在浏览器端,我正在尝试发送一个对象的数组(列表):
var csrftoken = $.cookie('csrftoken');
var data = [];
for(var i = 0; i < picks.length; ++i) {
data.push({pick:picks[i], priority:i, user:null});
}
$.ajax({
type:"POST",
url: "/api/foo/picks/",
data: /* How should I format this data? */,
sucess: function() { alert("Success!"); },
dataType: "json",
traditional:false, /* Should this be true? */
crossDomain:false,
beforeSend: function(xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
});
Run Code Online (Sandbox Code Playgroud)
mar*_*dev 12
如果你查看请求标题,你会注意到:
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)
这是json数据的不正确类型.
您需要设置正确的内容类型并序列化数据:
$.ajax({
type: "POST",
url: "/api/articles/",
data: JSON.stringify(data),
sucess: function() { console.log("Success!"); },
contentType: "application/json; charset=utf-8",
dataType: "json",
crossDomain:false,
beforeSend: function(xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3155 次 |
最近记录: |