Skip to main content
 首页 » 编程设计

javascript之jquery ajax post 列表将 '[]' 附加到 django 中的 querydict

2025年05月04日28dyllove98

我正在开发一个 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 对象。