2014-04-01 33 views
0

我有一個<select multiple />標籤,該標籤獲得一個數組值。爲什麼我的數組在HTTP POST中變成一個字符串?

當我追加該值我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

false contentType保存了什麼樣的內容?假文件? –

+0

如果使用formData [inputKey] = value;而不是'formData.append(inputKey,value);'? – Bellash

回答

0

看來我用來解析請求體的中間件在它的「body-parser」中有一個bug。

我把它改成了「multer」庫,一切都很好。

相關問題