当chrome扩展使用“EventSrouce”初始化时,抛出“SECURITY_ERR:DOM Exception 18”

时间:2012-03-20 09:57:28

标签: javascript html5 google-chrome google-chrome-extension xss

我正在使用HTML5 Sever Send Event来发布服务器的某些状态。我正在实施Chrome扩展程序来跟踪状态,并在需要时通知用户。

但是当我尝试创建EventSource对象时 Chrome会抛出异常“Uncaught Error:SECURITY_ERR:DOM Exception 18”

var tracker = (function(url) {
    var source = new EventSource(url);
    var onMessage = function(e) {
        console.log(e);
    }

    source.addEventListener('new', onMessage);

    return {
        source: source,
        newMessage: onMessage
    };
})('http://localhost:3000/dispatching');

我确实将服务器的URL添加到我的扩展权限中:

"permissions": [ 
    "http://localhost:3000/",
    "tabs"
]

但是许可并没有真正解决问题! 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于通过file://协议加载的HTML文件,这似乎是Same Origin Policy问题,试图通过http://协议与服务器联系。

以下是an article,介绍如何绕过开发环境的SOP。

当你投入生产时,我的理解是google chrome提供了一些绕过通常对浏览器施加的通常SOP限制的方法。这可能是通过您提到的permissions JSON,但我对Chrome Extensions不够熟悉,无法肯定地说。

啊,等等,this article可能有用。