Firefox SecurityError:“操作不安全。”

时间:2016-01-27 16:08:46

标签: javascript html5 firefox backbone.js cors

我正在使用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.仍然是同样的错误。

4 个答案:

答案 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/的身份访问网站。