使用 localStorage 时在 iPhone 上出现安全错误

问题描述 投票:0回答:3

当我尝试在 IOS Safari 中使用

localStorage.setItem("");
保存任何内容时,出现此错误 -

SecurityError (DOM Exception 18): 操作不安全

这是错误的屏幕截图...

任何想法如何解决这个问题? 谢谢。

javascript ios iphone safari local-storage
3个回答
12
投票

找到答案。 阻止 Cookies 在用户的 Safari 设置中打开。


4
投票

我在桌面版的 Safari 上遇到了这个问题。我启用了“禁用本地文件限制”这就是你如何找到它:

您的 cookie 设置也不允许处于“始终阻止”状态。否则你也会得到这个错误!


0
投票

不仅是Safari,还有隐私浏览模式下的Firefox。 Chrome 不会在隐身模式下阻止 localStorage,但它会在每次会话时被重置(恕我直言,这是一个更好的选择)。 在任何一种情况下,您都不应该直接使用 localStorage,而是制作一个脚本,如果它可用,则使用它,如果不可用,则使用 sessionStorage。 即

var backupStorage = {};
var storageMode = 'localStorage';
try {
    localStorage.length;
} catch(e) {
    try {
        sessionStorage.length;
        storageMode = 'sessionStorage';
    } catch(e) {
        storageMode = 'backupStorage';
    }
}

function setLocalStorage(key, value) {
    switch(storageMode) {
        case 'localStorage':
            localStorage.setItem(key, value);
            break;
        case 'sessionStorage':
            sessionStorage.setItem(key, value);
            break;
        case 'backupStorage':
            backupStorage[key] = value;
            break;
    }
}
function getLocalStorage(key) {
    switch(storageMode) {
        case 'localStorage':
            return localStorage.getItem(key);
        case 'sessionStorage':
            return sessionStorage.getItem(key);
        case 'backupStorage':
            return backupStorage[key];
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.