怎麼用ajax下載檔案
阿新 • • 發佈:2018-11-19
可能大家都覺得沒有必要用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 }