为什么我的数组以逗号分隔的字符串发布?

OrE*_*lse 1 ajax jquery

我有以下场景

$(":checkbox").change(function() {
         CheckBoxes();
         Post();
 });
Run Code Online (Sandbox Code Playgroud)

function CheckBoxes()
{
    var manData = new Array();

    $('input:checked').each(function ()
    {
        if(this.name === 'man') manData.push($(this).val());
    });

    $('#man').val(manData);
}
Run Code Online (Sandbox Code Playgroud)

function Post()
 {

     var postData = {
     'man': $('#man').val()
                };

                var path = "/Home/Index";
                $.ajax({
                    url: path, type: "POST", cache: "false",
                    dataType: "json", contentType: "application/json; charset=utf-8",
                    traditional: true,
                    data: JSON.stringify(postData)
                }).success(function (response) {

                }).error(function (){

                });
            }
Run Code Online (Sandbox Code Playgroud)

这导致发布数据为

{"man":"2,3"} 而不是一个数组

{"man": ["2,3"]}.
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

tym*_*eJV 5

当你这样做时:

$('#man').val(manData);
Run Code Online (Sandbox Code Playgroud)

它将您的数组转换为逗号分隔的字符串.所以当你把它拿回来时,再把它分开:

var postData = {
    'man': $('#man').val().split(",")
};
Run Code Online (Sandbox Code Playgroud)