He logrado enviar un objeto FormData así:
var formData = new FormData(); formData.append('file', this.files[0]); $.ajax({ url: urlUploadProductsFile, type: 'POST', data: formData, cache: false, contentType: false, processData: false }, 'json'); Ahora lo que quiero hacer es agregar un CustomerId adicional para enviar al servidor. Lo siguiente no funcionará:
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');Y también probé las siguientes variaciones:
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 }
Cualquier ayuda apreciada.
Tratar:
var formData = new FormData(); formData.append('file', this.files[0]); formData.append('CustomerId', 2); /* note:: appending in form Data will give "csrf token mismatch error". so better you make a input feild of type hidden with name = CustomerId and value = 2 */ $.ajax({ url: urlUploadProductsFile, type: 'POST', data: formData, cache: false, contentType: false, processData: false }, 'json');Debe agregarlo directamente a formData (tal como lo hizo con 'file' ), o alternativamente usar parámetros de consulta (GET).