在html页面之间共享数据

我想从一个HTML页面发送一些数据到另一个。 我通过查询参数如http://localhost/project/index.html?status=exist发送数据。 这种方法的问题是数据保留在URL中。 有没有其他的方法来发送使用JavaScript或jQuery的HTML页面的数据。

为什么不将值存储在HTML5存储对象(如sessionStoragelocalStorage ,请访问HTML5存储文档以获取更多详细信息。 使用它你可以在本地临时/永久地存储中间值,然后再访问你的值。

要存储会话的值:

 sessionStorage.getItem('label') sessionStorage.setItem('label', 'value') 

或更永久:

 localStorage.getItem('label') localStorage.setItem('label', 'value') 

因此,您可以使用HTML5存储对象在多个页面之间存储(临时)表单数据,在重新加载后您甚至可以保留这些数据。

我知道这是一个旧的post,但我想我会分享我的两分钱。 @Neji是正确的,你可以使用sessionStorage.getItem('label')sessionStorage.setItem('label', 'value') (虽然他有setItem参数倒退,没有什么大不了的)。 我更喜欢以下,我认为它更简洁:

 var val = sessionStorage.myValue 

代替getItem

 sessionStorage.myValue = 'value' 

代替setItem

另外,应该注意的是,为了存储JavaScript对象,必须对它们进行string化来设置它们,并进行parsing以获取它们,如下所示:

 sessionStorage.myObject = JSON.stringify(myObject); //will set object to the stringified myObject var myObject = JSON.parse(sessionStorage.myObject); //will parse JSON string back to object 

原因是sessionStorage将所有东西都存储为一个string,所以如果你只是说sessionStorage.object = myObject你只能得到[object Object],这对你没有太大的帮助。

可能如果你只想传输数据以供JavaScript使用,那么你可以使用像这样的哈希标签

 http://localhost/project/index.html#exist 

所以一旦你完成回顾数据显示消息,并将window.location.hash更改为合适的值..现在,无论何时刷新页面hashtag不会存在
注意:当你使用这个而不是查询string的时候,发送的数据不能被服务器检索/读取

那么,你实际上可以通过JavaScript发送数据 – 但是你应该知道,这是网页排名第一的来源,因为它是XSS 🙂

我个人会build议使用HTML公式,并修改服务器端的JavaScript数据。

但是如果你想在两个页面之间共享(我假设它们不在本地主机上,因为在两个后端驱动的页面之间共享是没有意义的),你将需要指定CORS头部以允许浏览器将数据发送到列入白名单的域。

这两个链接可能会帮助你,它通过Node后端显示了这个例子,但是你明白了它是如何工作的:

链接1

而且,当然,CORS规范:

链接2

〜干杯