不能在循环中使用 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));
}
这是一个 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));
}