【问题标题】:WebTorrent BrokenWebTorrent 坏了
【发布时间】:2019-11-04 07:43:46
【问题描述】:

我试图弄清楚如何让网络种子播放视频,但我遇到了一些奇怪的错误。这是一个pastebin:https://pastebin.com/raw/3wp5F8Fh

这是一个现场版本:https://41182065-e8d9-40b1-8dd9-9433b402bce9.htmlpasta.com/

当我们进入 chrome 控制台时,我们得到了这个:

Mixed Content: The page at 'https://41182065-e8d9-40b1-8dd9-9433b402bce9.htmlpasta.com/' was loaded over HTTPS, but requested an insecure script 'http://momentjs.com/downloads/moment.min.js'. This request has been blocked; the content must be served over HTTPS.
/favicon.ico:1 Failed to load resource: the server responded with a status of 404 ()
(index):1 Access to XMLHttpRequest at 'https://nyaa.si/download/941788.torrent' from origin 'https://41182065-e8d9-40b1-8dd9-9433b402bce9.htmlpasta.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
webtorrent.min.js:4 Uncaught Error: Error downloading torrent: XHR error
    at webtorrent.min.js:5
    at t.exports.<anonymous> (webtorrent.min.js:7)
    at t.exports.t (webtorrent.min.js:5)
    at t.exports.r.emit (webtorrent.min.js:4)
    at XMLHttpRequest.c.onerror (webtorrent.min.js:7)

【问题讨论】:

    标签: html torrent webtorrent


    【解决方案1】:

    解释在错误消息中,但简而言之:您的浏览器阻止了请求,因为您正在使用 AJAX 与远程服务器通信并且该服务器没有发送适当的“访问控制允许来源” ' 标题。

    阻止此类请求的原因是为了保护您免受恶意脚本的侵害 - 如果您登录到网站 A 并可以访问某些私人数据,那么网站 B 应该无法触发 AJAX 请求来访问该数据数据,除非 A 信任 B。

    这种访问的通用术语是“跨源资源共享”或“CORS”——有关更多信息,Mozilla 在这里有一个很好的总结:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

    如果您可以控制远程服务器,则使用适当的标头进行响应将允许请求通过(尽管请注意,某些浏览器(例如 Safari)仍会阻止来自远程服务器的 cookie,因为这种技术可用于跟踪) .

    【讨论】:

    • 有什么我可以做的吗?我无权访问该服务器。
    • @RyanGlen 这个答案提供了一些关于如何绕过它的详细信息:stackoverflow.com/a/43881141/2208016 但是我建议谨慎-那里的一些建议(例如代理) 表示您通过第三方传递数据,因此信任该第三方或至少了解风险非常重要。
    • 我尝试使用代理,它似乎只是提供垃圾数据,请参见此处:cors.io/?https://nyaa.si/download/941788.torrent 知道为什么会这样做吗?
    • @RyanGlen 这不是垃圾数据 - 这是 .torrent 文件的内容(如果您想检查,可以自己下载)。我不确定你如何让 webtorrent 加载它,但这超出了这个问题的范围。
    • 这就是我的想法,但是我实际上无法从浏览器下载该文件。我可能会编写某种后端脚本来从 cors.io 下载该数据,但我不完全确定这是否是一个好的解决方案?我的想法:编写一个 ruby​​ 脚本从 cors.io 下载 .torrent 文件,然后让 webtorrent 指向 .torrent 文件的本地版本。这行得通吗?
    猜你喜欢
    • 2020-05-18
    • 2015-08-19
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多