Javascript 对谷歌驱动器链接进行旁路病毒扫描,并获取确认ID

Javascript 对谷歌驱动器链接进行旁路病毒扫描,并获取确认ID,javascript,xmlhttprequest,Javascript,Xmlhttprequest,在他的帮助下,我想出了下面的代码。我如何获取Google Drive文件ID,打开指向该文件的直接链接,并获取病毒扫描确认ID,该ID是流式传输超过100 MB的文件所需的,然后将链接拼回?我被困在xhr部分了 函数fixGoogleDriveURL(url){ 如果(url.indexOf('drive.google.com')!=-1){ var DocIDfull=url; var DocIDstart=DocIDfull.indexOf('open?id='); 如果(DocIDsta

在他的帮助下,我想出了下面的代码。我如何获取Google Drive文件ID,打开指向该文件的直接链接,并获取病毒扫描确认ID,该ID是流式传输超过100 MB的文件所需的,然后将链接拼回?我被困在xhr部分了

函数fixGoogleDriveURL(url){
如果(url.indexOf('drive.google.com')!=-1){
var DocIDfull=url;
var DocIDstart=DocIDfull.indexOf('open?id=');
如果(DocIDstart==-1){
//无效的
返回url;
}
var DocID=DocIDfull.slice(DocIDstart+8);
url='1〕https://drive.google.com/uc?export=download&id=“+DocID;
var xhr=new XMLHttpRequest();
xhr.onload=函数(){
如果(xhr.readyState==xhr.DONE){
如果(xhr.status==200){
var-token=xhr.responseText.match(“/confirm=([0-9A-Za-z]+)&/”;
window.location.replace(url+'&confirm='+token[1]);
//我是否应该在此处添加url+='&确认='+标记[1],而不是window.location?
}
}
};
xhr.open(“GET”,url);
xhr.send();
}
返回url;
}

日志(fixGoogleDriveURL('https://drive.google.com/open?id=1C25uoL6nIqqNhex3wm8VwODsO2q2pXBt“)+”\nGoogle不明确允许使用客户端JavaScript抓取GDrive,因此Ajax调用/XHR失败

解决这个限制的唯一方法是在中间使用代理,它将转发谷歌的网站代码,但添加适当的访问控制允许源标头。 您可以使用自己的服务器(一些最小的服务器端脚本代码就可以了),也可以使用类似或的服务来代理请求

AllOrigins站点有一些用于jQuery的示例代码,但基本上它们是通过URI编码要访问的URL并将该字符串附加到站点的代理URL来工作的。 下面是freecodecamp.org的一篇文章,概述了如何使用这些服务(跳到
不要让CORS阻止你!
部分)


注意:安全建议:这些服务目前运行良好,但明天可能会停止营业,转而提供恶意数据,或者将您的文件请求重定向到完全不同的文件或完全不同的网站。您可以决定是否信任这些陌生人。

有什么想法吗ks!我尝试添加
xhr.send()
我确实收到了错误
CORS标题“Access Control Allow Origin”丢失的消息
。有什么办法吗?而且它似乎甚至没有进入
xhr.onload
函数。谢谢!但是,即使有确认代码,我似乎也不能再从gdrive流式播放视频了。我只是得到了一个关于下载文件的弹出窗口,无法在浏览器中播放。这一定是最近发生的变化。或者你能让这个文件在浏览器中播放吗?看起来是的,是的。好像他们在上周的某个时候更改了它。哈哈,该死。好吧。所以我想我完蛋了?:)可能与将Google Drive更名为Google 1有关。至少对德国来说,这应该在今天发生,当Google宣布这些事情时,通常意味着这将持续几天,直到所有人都参与进来。