在客户端保存Javascript FormData()对象
我有一个html页面,其中包含一个表单元素和一些文本和文件输入元素。在客户端保存Javascript FormData()对象,javascript,html,cookies,local-storage,client-side,Javascript,Html,Cookies,Local Storage,Client Side,我有一个html页面,其中包含一个表单元素和一些文本和文件输入元素。 使用此处建议的方法,通过ajax调用将此从提交到服务器: 正如您在上面链接的参考页面中所看到的,FormData()对象被用作输入数据的容器,我已经成功地完成了这项工作。 但是现在我们想要创建一个包含这些html元素的新页面,在客户端保存文本和文件输入(Cookie或本地Strorage或…),然后在另一个页面上进行ajax提交。 我无法在cookie或本地存储中保存新FormData();保存的是一个小字符串:“[ob
使用此处建议的方法,通过ajax调用将此从提交到服务器:
正如您在上面链接的参考页面中所看到的,FormData()对象被用作输入数据的容器,我已经成功地完成了这项工作。
但是现在我们想要创建一个包含这些html元素的新页面,在客户端保存文本和文件输入(Cookie或本地Strorage或…),然后在另一个页面上进行ajax提交。
我无法在cookie或本地存储中保存新FormData();保存的是一个小字符串:“[object FormData]”,而不是输入的文件和字符串。
我还尝试使用JSON.stringify()但没有成功;它只是返回了一个空的JSON(“{}”)。
(代码使用jQuery选择器)
var postData=newformdata($(form)[0]);
//var sPostedData=JSON.stringify(postData);//返回:“{}”
var myStorage=window.localStorage;//返回:“[object FormData]”
setItem(“contentOrder”,postData)
要从表单数据获取文件,请使用formData.get('file')
其中file
是输入的名称。返回的对象将是Blob类型(如何获取其内容)
完整的示例可以在这个提琴中找到:localStorage仅存储字符串。此外,您不能使用脚本填充
文件
输入。您需要重新考虑这个流程…尤其是如果使用较大的文件,因为localStorage也有大小限制。我们有一个商店网站,我们需要添加什么功能,以便客户在登录之前购买。我想保留用户输入,直到他登录,然后进行提交。可以进行上传并存储在会话或临时文件中,然后在登录后对其执行其他操作