我使用 jQuery 收集在网页上输入的所有信息,然后使用 ajax 将此信息发送到我的 django View 。这是负责处理此问题的代码:
var button = $("#serialise");
var JSON_content = $('#JSON_Contents')
$(button).click(function() {
var vals = [];
$("#questions :input").each(function(index) {
if($(this).attr('type') == 'checkbox') {
if($(this).prop("checked")) {
vals.push('on');
}
else {
vals.push('off');
}
}else {
vals.push($(this).val());
}
});
vals = JSON.stringify(vals);
var url = window.location.pathname;
$.ajax({
method: "POST",
url: url,
data: {
'vals': vals
},
dataType: 'json',
success: function (data) {
//On success
}
});
});
View 然后在此处接收信息:
def add_questions(request, review_id = None):
if request.method == 'POST':
vals = request.POST.get('vals', None)
args = {'recieved': 'true'}
return JsonResponse(args)
我遇到的问题是发送的信息是作为字符串发送的,而不是作为列表发送的。
因此它以 '["Example", "Example"]'
形式发送,而不是 ["Example", "Example"]
。
我假设我的 vals = JSON.stringify(vals);
导致了此问题,但是如果我删除此问题, View 将不会收到任何内容。
如何将其变成我想要的列表?
最佳答案
在 Django 中收到 JSON 时需要解析它
vals = json.loads(vals)
关于jquery - Ajax 将列表作为字符串发送,而不仅仅是列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47209153/