Когда вы загружаете все содержимое из элементов управления form
, самый простой способ построить объект FormData - предоставить ссылку form
на конструктор, а затем все append()
logi c сделано для вас.
Также обратите внимание, что при работе с формами вы должны подключаться к событию submit
самой формы, а не к нажатию кнопки отправки.
Наконец, вам нужно включить contentType: false
и в вызов $.ajax
, чтобы jQuery установил правильные заголовки.
После всего сказанного попробуйте следующее:
jQuery($ => {
var apiBaseUrl = "http://localhost:50895/CsgFiles/";
$("#uploader").on('submit', function(e) {
e.preventDefault();
var data = new FormData(this);
$.ajax({
url: apiBaseUrl + 'saveFiles',
type: 'POST',
dataType: 'json',
data: data,
cache: false,
contentType: false,
processData: false,
}).done(function(data) {
debugger;
console.log(data);
}).fail(function(e) {
debugger;
});
});
});
Я бы также предложил использовать относительный путь для вызова, например: var apiBaseUrl = "/CsgFiles/";
. Таким образом, код будет работать при перемещении между локальными / dev / live средами. Это также исключает возможность любых междоменных аварий с использованием разных протоколов.