首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的sessionStorage行为

奇怪的sessionStorage行为
EN

Stack Overflow用户
提问于 2012-12-16 00:21:30
回答 2查看 533关注 0票数 1

好的,请耐心等待,我会尽可能详细地解释这个问题。

我有3个超文本标记语言(和适当的.js)文件。我可以将内容添加到sessionStorage中,当我位于这两个sessionStorage文件中的任何一个文件中时,我都会显示该HTML的内容。我在最新版本的火狐上运行文件,据我所知,它支持sessionStorage ://所以,一切都很好,我可以在HTML1的sessionStorage中添加东西,然后转到HTML2,数据就可以正常显示了。我理解了sessionStorage的概念,一切都很好。

但奇怪的是:当我在HTML1中向sessionStorage添加内容并通过a-href转到HTML2时,sessionStorage的内容就在那里。但是,如果我在url栏中单击并按enter,则内容将丢失。SessionStorage为null。我返回到HTML1并按ctrl+r (重新加载),仍然是null。但是,当我在url栏中点击并按回车键(当我在HTML1页面中)时,sessionStorage内容返回。

我已经做了几次检查,似乎当我在url栏中单击并按enter时,又创建了另一个sessionStorage实例。

但是,如果我将项目上传到某个服务器上,则不会发生这种情况。我想知道为什么--如果火狐支持sessionStorage --当我在本地运行应用程序时会发生这种情况,那里到底发生了什么?谢谢你的任何解释。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-16 19:25:03

好的,它不能在本地工作,因为你正在打开文件,你需要在服务器上运行它。

浏览器将使用URL (当然还有其他内部内容)将会话绑定在一起,这就是为什么它可以在您上传到的任何服务器上工作。这不适用于文件URL,因为浏览器看起来它们是来自不同位置的不同页面,因此会话不是共享的。

如果你在本地设置WAMP或其他东西并运行它,它将会工作。这正是xavierm02的建议。

票数 2
EN

Stack Overflow用户

发布于 2012-12-16 01:24:22

我敢肯定,如果您查看文件系统中的文件,浏览器会将每个文件视为一个域。所以没有Ajax,没有共享cookie,会话等等。我觉得奇怪的是你可以保留一些会话……

想象一下,你有一个用户愚蠢到打开他下载的html文件,如果没有这些保护,这个html文件可以看到系统上的所有内容。当你打开一个.exe (或类似的文件)时,就像杀毒软件和操作系统警告你一样,当你打开一个.html文件时,你不会得到任何类型的警告。

您必须使用本地服务器,可能类似于WAMP。或者Apache,如果可以的话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13893930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档