gpt4 book ai didi

javascript - 为什么 FormData 如此隐秘/私密?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:25:52 26 4
gpt4 key购买 nike

一旦我创建了 FormData

var form = new FormData();
form.append("hash", this.S.Storage.get('h_token'));

我不能将它字符串化:

JSON.stringify(form) // returns "{}"

我无法遍历它:

_.each(form, function(val){
// nope
})

而且我无法将它记录到控制台(没有任何有用的结果)。

console.log(form);

我还没有在 JavaScript 中遇到过这种神秘的类型。

最佳答案

它非常隐秘,因为它仅用于将数据传递给 AJAX 请求,并且使您不必像定期提交表单时那样自行在“multipart/form-data”中对数据进行编码.因此,您应该只在发送 AJAX 请求的最后一刻使用它,而不是将它传递给其他函数。

如果您需要在其他任何地方访问相同的数据,您可以传递一个简单的 JS 对象并编写一个简单的帮助程序,例如:

function createFormData(myData) {
// It could also take an existing form for some values from the user
var formData = new FormData(/** FormElement form */);
for (var key in myData) {
formData.append(key, myData[key]);
}
return formData;
}

sendMyInfo: function(params)
// Add some data to the default params
params.hash = this.S.Storage.get('h_token'));
params.cacheBuster = (new Date()).valueOf();

// Inspect it
console.log(myData);

// Wherever you actually need FormData, create it for that purpose only....
var oReq = new XMLHttpRequest();
oReq.open("POST", "stash.php", true);
oReq.send(createFormData(myData));
};

关于javascript - 为什么 FormData 如此隐秘/私密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17201690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com