我正在构建firefox的扩展程序,该扩展程序将get请求发送到本地js服务器,该请求包含youtube视频的url,本地服务器将在mpv中打开视频。一切正常,除了发出请求的那一部分,我不知道该怎么做。
manifest.json:
{
"manifest_version": 2,
"name": "Youtube Caster",
"version": "1.0",
"description": "My own casting plugin",
"icons": {
"32": "icons/youtube-32.png"
},
"permissions": [
"*://www.youtube.com/*",
"activeTab",
"webRequest"
],
"browser_action": {
"browser_style": true,
"default_icon": "icons/youtube-32.png",
"default_title": "Caster",
"default_popup": "popup/cast_video.html"
}
}
我的内容脚本:(仅显示应该发出请求的功能)
function cast() {
const url = "http://127.0.0.1:8080/play?url="
const videoURL = window.location.href;
console.log("casting... ", url+videoURL)
fetch(url+videoURL);
}
我希望在调用函数时请求能够通过,但是不会,我的本地服务器什么也没收到。
尝试在您的权限中包括"http://localhost/*"
或"http://127.0.0.1:8080/*"
。参考here.
经过更多阅读后,我发现您不应在权限中使用端口,并且内容脚本只能在端口80上发出请求。因此,在更改端口后,我的服务器可以运行到80,一切正常。
我觉得值得一提,为什么我要使用完整的网址。我正在尝试构建一个系统,使我可以将视频“广播”到网络上的另一台PC,这与chromecast的工作方式相当。因此,仅通过youtube视频ID发送将使我只能将此系统用于youtube,但是通过使用完整网址,每个上面带有html5播放器的网页都可以“投射”。
谢谢您的答复!