作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
一旦我创建了 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/
我是一名优秀的程序员,十分优秀!