jquery - Ajax 将列表作为字符串发送,而不仅仅是列表

标签 jquery ajax django

我使用 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/

相关文章:

python - 调用Django模板中对象的方法

python-3.x - 在 Python 3 上的 Django 中使用 Google Site Verification API

javascript - jQuery addClass 到具有与 Waypoints 相同类名的元素

javascript - 在 JavaScript 中从服务器 1 到服务器 2 执行 Ajax

php - MySQL/PHP : Update MySQL with Ajax

javascript - 输入字段中仅允许 HTTPS URL

python - 简化 django ORM 查询

javascript - 引用错误 : Can't find variable error

javascript - 使用 jQuery 使子 DIV 大于父 DIV

javascript - 如何获取不同图像jquery的具体src?