【问题标题】:Requested file in Javascript downloading to the user's computer rather than being read请求的 Javascript 文件下载到用户的计算机而不是被读取
【发布时间】:2013-05-20 01:45:41
【问题描述】:

我正在尝试破解,我的主要目标是获取 youtube 视频的 mp4 链接。过去,我一直从http://www.youtube.com/get_video_info?video_id=videoid下载文本文件并从那里提取链接,这在应用程序中有效,但在浏览器中这是不可能的,因为它是跨站点请求并且浏览器不允许它。

为了解决这个问题,我使用了easyXDM,现在的问题是文件正在下载到用户的机器上,而不是用Javascript打开。这是easyXDM代码

$(document).ready(function(){  var socket = new easyXDM.Socket({
        remote: "http://www.youtube.com/get_video_info?video_id=PBOBJRto728", // the path to the provider
        onMessage:  getVideo
    }); 
   });

这是http://www.voltsoft.com/default.html的页面,你可以去那里看看发生了什么。

如何在 javascript 中从文件中读取数据?

【问题讨论】:

    标签: javascript easyxdm


    【解决方案1】:

    easyXDM 不会满足您的需求。为了使 easyXDM 发挥作用,您需要将它托管在您想要在两个域之间进行通信的两个域上。在这种情况下,您在 voltsoft.com 和 youtube.com 上都需要它。您不能在此处使用 easyXDM,因为您无法将任意 HTML/JS 内容上传到 youtube.com。

    一般这种情况的解决方案是要么需要代理远程内容服务器端,要么需要远程服务器的配合。

    【讨论】:

    • 你可以看到它的实际工作,早些时候无法获取文件,因为 youtube 不允许跨域调用,但现在使用 XDM youtube 至少返回文件,唯一的问题是js打不开文件,直接下载。
    • 啊,但它并没有像你想象的那样工作。发生的事情是easyXDM 正在尝试向远程提供者打开一个iframe。远程提供程序是 easyXDM 特定的。在您的页面上,您错误地配置了远程参数,将其指向您要检索的最终资源,而不是远程 easyXDM 提供程序。由于这种错误配置,easyXDM 错误地尝试打开一个指向您指定的 youtube url 的 iframe。然后,您的浏览器会下载该 youtube 网址的响应,因为 youtube 响应指示 X-Frame-Options:SAMEORIGIN。
    • 不,你不能在这里使用 easyXDM,因为你不能把 easyXDM 放到 youtube.com 域上。
    • 在浏览其他帖子时发现了这个,也许这符合您的需求:stackoverflow.com/a/12941673/2167396
    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 2011-07-04
    • 1970-01-01
    • 2019-08-10
    相关资源
    最近更新 更多