Отправить объект FormData и дополнительный параметр через ajax

мне удалось отправить объект FormData следующим образом:

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 }

любая помощь ценится.

2 ответов


попробуй:

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

вам нужно либо добавить его непосредственно в formData (точно так же, как 'file'), или альтернативно используйте параметры запроса (GET).