Javascript 强制从外部url下载文件未在新选项卡/窗口中打开

Javascript 强制从外部url下载文件未在新选项卡/窗口中打开,javascript,jquery,download,Javascript,Jquery,Download,我试图下载一个带有JavaScript的文件,而不是让它在新的选项卡或窗口中打开 到目前为止,我得到的是: var link = document.createElement("a"); link.download = filename; link.href = fileurl; link.click(); 我对此做了大量的研究,但找不到任何有效的方法,因为该文件来自一个谷歌签名的URL,我无法控制该URL,也无法修改其标题 这必须发生在客户端JavaScript/jQue

我试图下载一个带有JavaScript的文件,而不是让它在新的选项卡或窗口中打开

到目前为止,我得到的是:

var link = document.createElement("a");
link.download = filename;
link.href = fileurl;
link.click();
我对此做了大量的研究,但找不到任何有效的方法,因为该文件来自一个谷歌签名的URL,我无法控制该URL,也无法修改其标题

这必须发生在客户端JavaScript/jQuery中

编辑 它实际上是动态的,所以可以有X个文件,如果我能把它们全部作为zip下载,那就更好了

for(var i=0; i<filenames.length; i++){
    var formData = new FormData();
    formData.append('filename', filenames[i]);
    
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function(){
        if(this.readyState == 4 && this.status == 200){
            fileurl = this.responseText;
            
            var link = document.createElement("a");
            link.download = filenames[i];
            link.href = fileurl;
            link.click();
        }
    }
    xmlhttp.open("POST", "url_to_get_download_urls");
    xmlhttp.send(formData);
}

for(var i=0;i您是否尝试在不同浏览器中执行下载操作?在最新版本的Chrome中,您无法下载跨源文件(它们必须托管在同一个域中)

如果文件没有更改,您是否尝试过自己托管文件并启动下载


编辑:如果您试图将项目捆绑到zip中进行下载,则需要在您自己的服务器上进行初始下载并在那里进行压缩。

您是否尝试在不同的浏览器中进行下载操作?在最新版本的Chrome中,您无法下载跨源文件(它们必须托管在同一域上)

如果文件没有更改,您是否尝试过自己托管文件并启动下载


编辑:如果您试图将项目捆绑到zip中进行下载,则需要在您自己的服务器上进行初始下载并在那里进行压缩。

CORS策略允许使用Google签名的URL,因此我认为我应该能够下载它们。这些文件可能非常大,因此为了可扩展性,无法将它们保存到我的服务器上d从那里下载它必须是客户端。@Paddyhalihan这里还有一些项目需要尝试。谷歌签名URL上的CORS策略允许我的域,所以我认为我应该能够下载它们。这些文件可能非常大,因此为了可扩展性,无法将它们保存到我的服务器上,从那里下载它必须是客户端。@PaddyHa利汉:这里还有一些东西可以尝试