我正在开发一个 Django 项目,我正在通过 Jquery 的 ajax 方法发送一个发布请求。已使用 javascript 从浏览器 cookie 中检索到 csrftoken。
$.ajax({
type : 'POST',
beforeSend: function( xhr, settings){
xhr.setRequestHeader("X-CSRFToken", csrftoken );
},
url : '/endpoint/',
data : { 'requestParam': [1,2,3,4] }
}).done(function(d) {
callback(d);
});
然后我检查后端通过 ajax 调用接收到的内容;
print( request.POST )
我期待着这个;
<QueryDict: {u'requestParam': [u'1', u'2', u'3', u'4']}>
相反,我明白了;
<QueryDict: {u'requestParam[]': [u'1', u'2', u'3', u'4']}>
这看起来很奇怪。键名中的'[]'是从哪里来的?这是在 Django 中以这种方式处理的约定,还是 AJAX 在发送列表时所做的事情?
请您参考如下方法:
这就是 jQuery 认为世界上每个人都使用 PHP。
将 traditional: true 添加到您的 ajax 对象。
