Javascript IE8/IE9上具有本地主机或LAN服务器名称的本地存储不';行不通

Javascript IE8/IE9上具有本地主机或LAN服务器名称的本地存储不';行不通,javascript,html,local-storage,Javascript,Html,Local Storage,我正在使用访问本地存储。在IE8和IE9中,我遇到了一个奇怪的问题,即使我只使用普通的旧javascript,它似乎也会发生 如果我转到http://foo并使用$.totalStorage,它在该会话中持续存在,但在我关闭并打开IE时消失 如果我转到http://foo.mydomain.com并使用$.totalStorage,当我关闭和打开IE时,它会持续存在 它甚至在我从VisualStudio启动(localhost)调试时发生 在Firefox/Chrome中,无论我使用的是go-f

我正在使用访问本地存储。在IE8和IE9中,我遇到了一个奇怪的问题,即使我只使用普通的旧javascript,它似乎也会发生

如果我转到
http://foo
并使用$.totalStorage,它在该会话中持续存在,但在我关闭并打开IE时消失

如果我转到
http://foo.mydomain.com
并使用$.totalStorage,当我关闭和打开IE时,它会持续存在

它甚至在我从VisualStudio启动(localhost)调试时发生

在Firefox/Chrome中,无论我使用的是go-foo还是foo.mydomain.com,它都会在会话之间保持不变

这是一个已知的问题吗?有解决办法吗

更新:若要复制此脚本,只需将此脚本块添加到页面中,然后从
http://localhost
http://yourpcname

<script>
    var storage = window.localStorage;
    alert (storage.foo);
    storage.foo = 'bar!';
</script>

var storage=window.localStorage;
警报(storage.foo);
storage.foo='bar!';

第一次在localhost上运行时,您将得到“未定义”。然后,如果你刷新你会得到“酒吧!”。然后,如果您关闭IE并再次返回,您将得到“undefined”而不是“bar!”。

听起来就像您每次启动调试器时都在创建express IIS或“visual studio development server”


如果您在每次调试时都没有创建express实例,也没有通过IIS设置永久应用程序,则不应该发生这种情况。

不幸的是,即使我在常规的完整服务器2008 R2 IIS上托管web应用程序,也会发生这种情况,但通过短
http://foo
name而不是完全限定的
http://foo.mydomain.com
name。在这种情况下,我收回这个答案,对不起。可能是IE上的安全设置吗?只是一个想法。。。我相信你已经检查过了。。。但无论如何,值得一提的是。我认为这可能也是一种安全设置,但本地存储在IE中启用,并在完全限定的域名上运行良好。当您使用intranet地址运行IE8时,IE8将默认为IE7怪癖模式。(是的,谢谢微软)。这有关系吗?您可以使用兼容x-ua的标题将其强制为IE8模式。值得一试,但
没有改变它。在OP中,我的测试用例在第一次加载时仍然是“未定义的”。顺便说一下,我很好地运行了您的测试代码。这是特定于您的设置的东西。我有3个在线朋友能够在他们的设置中复制它,其中一个是使用Linux/nginx作为服务器。