【发布时间】:2016-03-09 00:49:32
【问题描述】:
我正在开发一个大型 Angular 应用程序,如果他们禁用了 cookie,我需要向用户显示错误消息。
因此,问题是:当 Angular 尝试加载一个尝试访问本地存储的模块时,当 cookie 被禁用并显示以下错误消息时,Angular 崩溃:
Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
Angular 在这里抛出了错误:
function getService(serviceName, caller) {
if (cache.hasOwnProperty(serviceName)) {
if (cache[serviceName] === INSTANTIATING) {
throw $injectorMinErr('cdep', 'Circular dependency found: {0}',
serviceName + ' <- ' + path.join(' <- '));
}
return cache[serviceName];
} else {
try {
path.unshift(serviceName);
cache[serviceName] = INSTANTIATING;
return cache[serviceName] = factory(serviceName, caller);
} catch (err) {
if (cache[serviceName] === INSTANTIATING) {
delete cache[serviceName];
}
throw err; // THIS IS WHATS BEING THROWN
} finally {
path.shift();
}
}
}
此应用程序的许多组件以一种或另一种方式访问 localStorage,简单地将它们硬重定向到另一个页面以显示此错误似乎是不雅的。
还有其他人遇到过这个问题吗?
【问题讨论】:
标签: javascript angularjs cookies