javascript - 初始化chrome扩展使用"SECURITY_ERR: DOM Exception 18"时抛出"EventSrouce"

标签 javascript html google-chrome google-chrome-extension xss

我正在使用 HTML5 服务器发送事件来发布服务器的某些状态。我正在实现一个 Chrome 扩展来跟踪状态,并在需要时通知用户。

但是当我尝试创建 EventSource 对象时 Chrome 抛出异常“未捕获错误:SECURITY_ERR:DOM 异常 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"
]

但是权限并不能真正解决问题! 有什么想法吗?

最佳答案

这看起来像 Same Origin Policy通过 file:// 协议(protocol)加载的 HTML 文件尝试通过 http:// 协议(protocol)联系服务器时出现问题。

这里是an article描述如何绕过您的开发环境的 SOP。

当您投入生产时,我的理解是 google chrome 提供了某些方法来绕过通常对浏览器施加的常见 SOP 限制。这可能是通过您提到的 permissions JSON 实现的,但我对 Chrome 扩展还不够熟悉,无法确定。

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

关于javascript - 初始化chrome扩展使用"SECURITY_ERR: DOM Exception 18"时抛出"EventSrouce",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9784581/

相关文章:

javascript - 负载测试 JavaScript Widget?

javascript - contenteditable div 中的字符数

html - 如何将div定位在绝对位置?

javascript - 当检测到某个最小屏幕分辨率大小时,如何通过 Javascript 更改 CSS 属性

javascript - 如何点击 Chrome 扩展程序中的按钮

google-chrome - 带 Angular CSS 渐变背景的 Chrome 问题

javascript - 如何将 Firebase 服务返回的对象作为数组打印(到控制台)

javascript - Promise 数组执行不正确

javascript - 如何测试聊天网络应用程序

javascript - Chrome 错误地将语言环境应用于 CSSStyleSheet 中的值