不能在循环中使用 FormData.append 吗?

Is it not possible to use FormData.append in a loop?

这是一个 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);
    }
});

正如我在评论中提到的,您的 for 循环 formData 工作正常。

如果您在 for 循环 中添加 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));
}