我试图查看 [object FormData]
中包含哪些内容,特别是在名称应为 Name
的特定元素中。我想提醒它,检查内容是否正确,但这样做返回 undefined
:
alert(fd['Name']);
我很确定我正在正确加载表单数据,所以我想知道问题是否出在我以错误的方式访问数据...
仅 PS 警报 fd
返回 [object FormData]
最佳答案
IvanZh 告诉我这种方法对他不起作用,这促使我对 HTML5 FormData
对象进行一些研究。事实证明,我对此完全错了(请参阅下面的旧错误答案)。 FormData
的所有数据都驻留在 native 代码中。这意味着浏览器以其实现语言处理表单字段和文件上传的数据。
引用 MDN :
Note: ... FormData objects are not stringifiable objects. If you want to stringify a submitted data, use the previous pure-AJAX example. Note also that, although in this example there are some file fields, when you submit a form through the FormData API you do not need to use the FileReader API also: files are automatically loaded and uploaded.
无法在 JavaScript 中表示此信息,因此我天真的建议将其简单地序列化为 JSON 是行不通的(这让我想知道为什么这个答案首先被接受了)。
根据您尝试实现的目标(例如,如果您只是尝试调试),简单地将此信息从返回相关 JSON 元数据的服务器端脚本中反弹出来可能是可行的。例如,在 PHP 中,您可以将您的 FormData 发送到 analyzeForm.php
,它可以轻松访问您在超全局相关请求下附加到 FormData 的所有内容。该脚本会消化您的表单内容,并以易于解析的 JSON 格式返回相关信息。这是非常低效的,因此它可能不适合生产环境,但它确实存在。
旧的错误答案:
您可以尝试使用:
alert(JSON.stringify(fd));
查看 fd
结构的文本表示。
您也可以使用 console.log
,但这是一个非标准功能,不能保证在所有浏览器中都存在。
关于javascript - 在 [object FormData] 中提醒特定元素(用于测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662875/