jQuery的交()与序列化和数据的阵列(jQuery post() with serialize

2019-06-26 21:38发布

我无法在后3 MVC它返回空值时获得的收藏价值。

$.post("/Work/Post", { vm: $('#myForm').serializeArray(), 'collection': ['a', 'b', 'c'] });

//Or


var data = $('#myForm').serializeArray();
data.push({ name: 'collection', value: ['a', 'b', 'c'] });
$.post("/Work/Post", data);

//Or

var data = $('#myForm').serializeArray();
data.push({ name: 'collection[]', value: ['a', 'b', 'c'] });
$.post("/Work/Post", data);

Answer 1:

经过阵列时,我也有类似的问题。

而不是使用$.post使用$.ajax ,并设置traditional选项= true ...

$.ajax({
    type: "POST",
    url: "Work/",
    traditional: true,
    data: { collection: ['a','b','c'] }
});

traditional: true的选择是非常重要的



Answer 2:

我撞了我的头这墙与常规阿贾克斯()调用个月。

我终于发现,你需要设置traditional: true的PARAMS列表$。阿贾克斯()。 (见“传统”的标题在这里: http://api.jquery.com/jQuery.ajax/ )

由于是$。员额()没有PARAMS名单,我不知道你可以用$。员额()做到这一点。 但它没有更多的代码,使用$阿贾克斯()。



Answer 3:

                var model = $('#myForm').serializeArray();

                $.map(['a', 'b', 'c'], function (val, i) {
                    return model.push({ "name": "collection[" + i + "]", "value": val });
                });

                $.post("/Work/Post", model);
                //OR
                $.post("/Work/Post", model, function (data) {
                    //After Success
                });


Answer 4:

以下为我工作。 您可以使用serializeArray()serializeJSON(),如下并将其设置为数据元素。 观察FORMDATA变量。

var formData = $('#inputForm').serializeJSON();
$.ajax({
    type : "POST",
    url: server_side_url,
    cache:false,
    traditional: true,
    data: formData,
    dataType: "json",
    success: function(data, textStatus, jqXHR){
        console.log("successfully processed.");
    },
    error: function(xhr,status,error){
        console.log("error occurred.");
    }
}); 


文章来源: jQuery post() with serialize and array of data