昨天我安装了 Windows 8,现在我想了解为什么我在访问本地存储时收到“拒绝访问”消息。该页面与浏览器 (http://localhost) 在同一台 PC 上提供。我的感觉是 IE 10 中的一项安全设置有误,但我还没弄清楚是哪一项。
触发错误的 JavaScript 代码行是:
if(window.localStorage.getItem('phone') == null)
该代码在最新版本的 Chrome 中运行良好。
最佳答案
我们的用户在使用带有 IE 10 的 Windows 8 上使用 LocalStorage 功能(包括 Twitter)的网站时遇到问题。在打开 F12 开发人员工具的情况下访问其中一个网站时,SCRIPT5: Access is denied
消息出现在控制台上。
在与 Microsoft 支持部门合作后,我们确定了原因。结果证明是他们用户配置文件中 C:\Users\username\Appdata\LocalLow
文件夹的设置有问题。
您计算机上的每个文件夹都有一个完整性设置。有关此设置用途的更多信息,请参见此处:http://msdn.microsoft.com/en-us/library/bb625964.aspx
每个用户配置文件中 AppData\LocalLow
文件夹(及其子文件夹)的完整性设置应该设置为“低”(因此得名)。在我们的例子中,此文件夹的完整性级别设置不正确。要纠正该问题,请在命令提示符窗口中运行以下命令:
icacls %userprofile%\Appdata\LocalLow/t/setintegritylevel (OI)(CI)L
(如果计算机上有多个用户帐户,而其他用户也有同样的问题,则需要在每个受影响的用户帐户下运行该命令。)
至于这个设置最初是如何改变的?在我们的案例中,这是由我们部署到工作站的自定义 Windows 8 镜像中的问题引起的。对于其他遇到问题的人,我的研究表明使用“系统清理器”实用程序可能是罪魁祸首。
关于javascript - 在 IE10 中拒绝访问本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13102116/