2016-10-20 18 views
0

一个zip文件将在用户按钮点击下载。我有以下设置,但我无法连接这些组件。连接从Ajax下载的“GET”

“获取”的呼叫将返回字节的内容设置为attachment与文件名设置为application/x-zip-compressed和内容配置内容类型xxxx.zip

$(".downloadBtn").on("click", function(){ 
    $.ajax({ 
    headers: { 
     "xxxx" : "3.0" 
    }, 
    type: "GET", 
    url: url, 
    success: function(data) { 
     // do something with the data 
    }, 
    error: function(eData) { 
     console.log(eData); 
    } 
    }); 
}); 
+0

那么,问题是什么......你卡在哪里 –

回答

2

这可能不是预期的答案,但你可以试试这个作为备选。

<a href="your_download_url.zip" download> 
    <button>Download</button> 
</a> 

如果使用的是HTML5,这种“下载”属性可能是有用的。

+0

如果设置了“content-disposition”头文件,我甚至不会认为你需要下载属性。 – jessegavin

+0

没有下载属性,有可能你会被重定向到“path.zip”页面。 –

+0

我想有一个机会(如果请求来自浏览器,不正确处理这种类型的响应)。但是所有的现代浏览器_只应该下载我认为的文件。以下是MDN必须说... https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition – jessegavin

0

您是否有权访问后端?你能提供关于后端部分的更多信息吗?

无论如何,假设您使用某种Web API来编写某种前端应用程序,您可以使用此Javascript library从字节(Blob)创建文件。它可能不适用于所有的浏览器,但它在Chrome上运行,我自己尝试过。

+0

@ Luca Angioloni感谢您的评论。我现在从一个在stackoverflow上的帖子得到了这个工作。你说得对,它并不适用于所有的浏览器。看起来IE11不喜欢它,并决定抛出一个“InvalidSTateError”在我身上。根据这[post](https://connect.microsoft.com/IE/feedback/details/795580/ie11-xmlhttprequest-incorrectly-throws-invalidstateerror-when-setting-responsetype)它不是repro,但我知道了。偶然你有解决这个问题的办法吗? –

+0

@JasonTang不幸的是,我不知道IE的任何解决方法......像往常一样没有在IE上工作... –