Передача массива на бэкэнд с помощью Ajax (Django)
Я изучаю AJAX, и у меня возникли проблемы с передачей массива в бэкенд. Я могу передать простую переменную, и мой код работает отлично, но когда я передаю массив, я не могу успешно передать данные.
Мой код ниже (он работает):
function add_var() {
var aa = 5;
$.ajax({
url : "add_variable/",
type : "POST",
data : { num1 : aa},
success : function(json) {
$('#num3').val(json);
},
error : function() {
console.log("fail");
}
});
};
Это работает просто отлично, и я могу передать 5 в бэкенд. Однако когда я меняю aa на массив, функция больше не работает и возвращает 'None' на бэкенд Views.
function add_var() {
var aa = [5,10,15];
$.ajax({
url : "add_variable/",
type : "POST",
data : { num1 : aa},
success : function(json) {
$('#num3').val(json);
},
error : function() {
console.log("fail");
}
});
};
Может ли кто-нибудь указать мне правильное направление? Любая помощь будет принята с благодарностью!
Вы можете сделать это таким образом для любой строки или числа, но как только вам нужно передать обратно объект (например, массив), вам нужно "строчить"
data : {num1 : JSON.stringify(aa)}
Затем необходимо "Разобрать" или "Десериализовать" строку, которая преобразует ее обратно в объект.
Я полагаю, что в django это выглядело бы примерно так:
import json
nums = json.loads(num1)