我正在使用Backbone.LocalStorage插件与骨干应用。它在chrome和safari中运行良好,但它在firefox中给出了我的误差。
DOMException [SecurityError:“操作不安全。” 代码:18 nsresult:0x80530012 位置:http://localhost:8000/js/libs/backbone.localStorage/backbone.localStorage.js?version=1453910702146:137]
我正在使用python simpleHttpServer
如何解决此错误?
更新
这是我的代码。
paths: {
'jquery' : 'libs/jquery/dist/jquery',
'underscore' : 'libs/underscore/underscore',
'backbone' : 'libs/backbone/backbone',
'localStorage' : 'libs/backbone.localStorage/backbone.localStorage',
'text' : 'plugins/text'
}
这是使用localStorage的集合。
var Items = Backbone.Collection.extend({
model: SomeModel,
localStorage: new Backbone.LocalStorage('items'),
});
更新2
我正在使用firefox 36。
更新3
好像这是一个CORS问题,但我的firefox版本是36.哪个应该没问题。
更新4
我也在firefox nightly版本44中收到此错误。我还将我的firefox更新为版本44.仍然是同样的错误。
答案 0 :(得分:4)
确保Firefox启用了coockies。 该设置可在菜单/选项/隐私/历史
下找到在下拉列表中,选择“记住历史记录”或者您更喜欢使用历史记录的自定义设置,但选择“从站点接受Cookie”选项
希望它有所帮助。答案 1 :(得分:4)
当我们尝试访问位于不同域的资源(CSS ...)时会发生这种情况。为了解决这个错误,我们可以使用:
try {
//your critical access to ressources !
//rules = document.styleSheets[i].cssRules;
} catch(e) {
if(e.name !== "SecurityError") {
throw e;
}
答案 2 :(得分:1)
确保您的域名相同。验证Same Origin Policy,表示相同的域,子域,协议(http vs https)和相同的端口。
What is Same Origin Policy?
How does pushState protect against potential content forgeries?
答案 3 :(得分:0)
我在一个脚本中遇到了类似的问题,我深入研究错误并发现它需要SSL websocket,因此我启动了SSL并再次进行了检查,然后它可以工作了。 尝试启用HTTPS并以https://127.0.0.1/的身份访问网站。