Разве невозможно использовать FormData.append в цикле? - PullRequest
0 голосов
/ 20 мая 2019

Это ajax-вызов, который может получить текущее время и изменить его на строку с тем форматом, который нужен пользователям.Поскольку я хочу инкапсулировать вызов ajax, я создал массив с парами ключ-значение.Я хочу использовать formData.append для установки параметров для вызова Ajax.Я написал некоторый код, показанный ниже, но когда я передал массив только с 1 объектом, после выполнения formdata.append, formdata все еще пусто, и мой вызов ajax не смог получить мой идеальный результат.Могу ли я знать, где я был не прав?

var Data=[{ "NAME": "DATEFORMAT", "VALUE": "yyyy/MM/dd HH:mm:ss" }];
var formData = new FormData();
for (var i = 0; i < Data.length; i += 1) {
    var x=Data[i];
    formData.append(x.NAME, x.VALUE);
}
$.ajax({
    url: "SomeFunction.ashx",
    headers: {
        "X-Requested-With": "XMLHttpRequest",
        "Requested-Type": "DateTimeToString"
    },
    method: "post",
    data: formData,
    processData: false,
    contentType: false,
    success: function (retdata) {
        resolve(retdata);
    },
    error: function (err) {
        reject(err);
    }
});

1 Ответ

0 голосов
/ 20 мая 2019

Как я уже упоминал в комментариях, ваши для цикла и formData работают очень хорошо.

Если вы добавите console.log(formData.get(x.NAME)) в для цикла , вы увидите, что данные успешно добавляются к элементу formData.

Итак, ваша проблема в вашем ajax-запросе .

var Data=[{ "NAME": "DATEFORMAT", "VALUE": "yyyy/MM/dd HH:mm:ss" }];
var formData = new FormData();
for (var i = 0; i < Data.length; i += 1) {
    var x=Data[i];
    formData.append(x.NAME, x.VALUE);
    console.log(formData.get(x.NAME));
}
...