2016-04-06 58 views
8

我已成功地發送FORMDATA對象,像這樣:發送FORMDATA對象和一個額外的參數,通過ajax

var formData = new FormData(); 
formData.append('file', this.files[0]); 
$.ajax({ 
    url: urlUploadProductsFile, 
    type: 'POST', 
    data: formData, 
    cache: false, 
    contentType: false, 
    processData: false 
}, 'json'); 

現在我想要做的就是添加一個額外的CustomerId發送到服務器。以下將不起作用:

var formData = new FormData(); 
formData.append('file', this.files[0]); 
$.ajax({ 
    url: urlUploadProductsFile, 
    type: 'POST', 
    data: { "file": formData, "CustomerId": 2 }, 
    cache: false, 
    contentType: false, 
    processData: false 
}, 'json'); 

而且我也嘗試了以下變化:

data: { "file": formData, "CustomerId": 2 }, processData: true

data: JSON.stringify({ "file": formData, "CustomerId": 2 })

data: { "file": JSON.stringify(formData), "CustomerId": 2 }

data: { file: formData, CustomerId: 2 }

任何幫助表示讚賞。

回答

14

Try:

var formData = new FormData(); 
formData.append('file', this.files[0]); 
formData.append('CustomerId', 2); 
$.ajax({ 
    url: urlUploadProductsFile, 
    type: 'POST', 
    data: formData, 
    cache: false, 
    contentType: false, 
    processData: false 
}, 'json'); 
2

您需要將其直接添加到formData(就像您使用'file'一樣),或者使用查詢(GET)參數。