我想通過ajax發送一個JavaScript數組到Django,如下所示。通過ajax發送數組到Django
main.html
:
<a href=#>Click</a>
<script>
$(document).on('click', 'a', function() {
var arr = [1, 2, 3, 4];
var formData = new FormData();
formData.append('arr', arr);
$.ajax({
url: '...',
type: 'POST',
data: formData,
processData: false,
contentType: false
});
});
</script>
和服務器端:
views.py
:
@csrf_exempt
def main(request):
arr = request.POST.get('arr')
print(type(arr))
print(arr)
return render(request, 'main/main.html')
結果是一個字符串:'1,2,3,4'
。
如果我檢索與數據:
arr = request.POST.getlist('arr')
結果是包含字符串列表:['1,2,3,4']
我怎樣才能像[1, 2, 3, 4]
一個真正的名單?
的'[]'的'ARR []'只是PHP的命名約定。 Django似乎並不尊重這一點。 –
那麼它不僅僅是一個PHP的命名約定,它是一種在http協議中將數組作爲get參數發送給URL的方法。 – ZedXter
但是'arr = request.POST.get('arr []')'的結果仍然是一個字符串:''1,2,3,4''和'arr = request.POST.getlist('arr []')'仍然是一個包含一個字符串的列表:'['1,2,3,4']'。 –