为什么我的Array在HTTP POST中变成了一个字符串?

时间:2014-04-01 15:24:09

标签: jquery http post

我有一个<select multiple />标记,它是一个数组值。

当我将该值附加到我的FormData时:

var formData = new FormData();
$(icFields).filter(":not(:file)").each( function() {
        var input = $(this);
        var inputType = $(input).attr("type");
        var inputKey = $(input).attr("name");
        if( typeof(inputKey) != "undefined" || inputKey == "" ) {
            var keyArr = inputKey.split("-");
            if(keyArr[0] != "temp") {

                var value = $(input).val();

                var encrypted = $(input).data(ENCRYPTION_KEY);
                if(encrypted) {
                    value = CryptoJS.SHA3( value );
                } 

                formData.append( inputKey, value );
            }

        }
    });

我在服务器上的请求正文中得到的是一个字符串。

例如:formData.append("genre", ["0","1","2"]); 在请求正文中,我看到:{ genre: '1,2,3' }

我正在使用ajax。我还在ajax调用中设置了contentType: falseprocessData: false

1 个答案:

答案 0 :(得分:0)

看起来我用来解析请求主体的中间件在它的“body-parser”中有一个错误。

我把它改成了“multer”库,一切都很好。