2014-01-09 50 views
1

我正在一個Django項目,我通過jquery的ajax方法發送一個post請求。已經使用javascript從瀏覽器cookie中檢索了csrftoken。jquery ajax後列表追加'[]'在django querydict

$.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在發送列表時做的事情?

回答

12

這是jQuery相信世界上每個人都使用PHP。

traditional: true加到您的ajax對象中。