首页 > 解决方案 > JSON.Stringify() 返回未定义而不是文本

问题描述

我正在制作一个表格,用于下载用户放入其中的数据。到目前为止,文件下载但不是用户的输入,而是返回[object Object]
我尝试使用 JSON.Stringify() 但它返回的文件中包含“未定义”。即使 console.log() 给了我{username: "asdasd", password: "sdasdasd"}

      e.preventDefault();
      console.log(formData);
      var formDataString = JSON.stringify(FormData);
      // ... submit to API or something
      download(formDataString, 'json.txt', 'text/plain');
    };
    const initialFormData = Object.freeze({
      username: "",
      password: "",
    });
    function download(formDataString, fileName, contentType) {
      var a = document.createElement("a");
      var file = new Blob([formDataString], {type: contentType});
      a.href = URL.createObjectURL(file);
      a.download = fileName;
      a.click();
      
  }

我的完整代码可以在这里
查看 提前感谢您的帮助。

标签: javascriptjsonreactjsformsform-data

解决方案


如果您检查此处报告的代码段的第 2 行和第 3 行,答案非常简单:您说JSON.stringify(FormData)的是大写F,而console.log输出formData具有较低的f

变量在 JavaScript 中区分大小写,因此FormData永远不会定义 ( undefined),而formData您在上面已正确定义,并console.log(formData)在控制台中正确输出变量的内容。


推荐阅读