1. 程式人生 > >怎麼用ajax下載檔案

怎麼用ajax下載檔案

可能大家都覺得沒有必要用ajax來下載東西,用window.open(url)就可以搞定

但是這有一個問題,就是這就限定了只能用GET方式來請求了;

可能你又會說GET很符合REST的要求呀。

但是如果你用jwt來做身份驗證呢?

這意味著你需要在Window.open時帶上自定義的Request Header,這就無解了

所以今天來介紹一下怎麼用ajax來下載檔案

 1 let xhr = new XMLHttpRequest()
 2 xhr.open('GET', 'http://www.xxx.com/bbb.zip', true)
 3 // 這部至關重要,命令xhr返回給你的時blob(二進位制大物件)型別的資料
4 xhr.responseType = 'blob' 5 xhr.send() 6 xhr.onreadystatechange = function () { 7 if (xhr.readyState === 4 && xhr.status === 200) { 8 const aTag = document.createElement('a') 9 aTag.href = URL.createObjectURL(this.response) 10 aTag.download = 'aaa.zip' 11 aTag.click()
12 } 13 }