2016-04-06 14 views
8

sono riuscito a inviare un oggetto formdata in questo modo:Invia oggetto formdata E un parametro aggiuntivo tramite la tecnologia 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'); 

Ora quello che voglio fare è aggiungere un ulteriore CustomerId per inviare al server. Quanto segue non funzionerà:

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'); 

E anche provato le seguenti variazioni:

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 }

Qualsiasi aiuto apprezzato.

risposta

14

Prova:

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

È necessario aggiungerlo direttamente a formData (come nel caso di 'file') o in alternativa utilizzare i parametri di query (GET).

Problemi correlati