【发布时间】:2023-04-09 05:04:01
【问题描述】:
我正在使用 HTML5 服务器发送事件来发布服务器的某些状态。我正在实现一个 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"
]
但是权限并不能真正解决问题! 有什么想法吗?
【问题讨论】:
-
您的页面托管在哪个 URL 上?是不同的端口吗?
-
我不确定他们如何处理端口,但您的 match pattern 应该是
http://localhost:3000/*才能工作。 但是,我认为调用本地运行在机器上的进程甚至不需要此权限(请参阅this question),因此我认为问题可能出在您的代码上。不幸的是,我对这个新 API 知之甚少,因此无法真正提供帮助。
标签: javascript html google-chrome google-chrome-extension xss