pdf文件通過a標簽直接下載會打開頁面,所以,請求該文件的blob文件流數據,再通過window.URL.createObjectURL轉成鏈接,就可以直接下載了。
只需要替換url和文件名稱就行,文件名的后綴記得要寫上pdf,不然會變成txt文件。
注意:不能跨域,可以把文件上傳到后端服務器,就不會跨域了。還可以用跨域代理處理。
let url = 'http://xxxxxxxxx.pdf'
let name = '實例.pdf'// 發送http請求,將文件鏈接轉換成文件流let xhr = new XMLHttpRequest()xhr.open('get', url, true)// 請求類型xhr.responseType = 'blob'xhr.onreadystatechange = function() {// 獲取接口結果if (xhr.readyState === 4 && xhr.status === 200) {window.URL = window.URL || window.webkitURLlet a = document.createElement('a')let blob = new Blob([xhr.response])// 通過二進制文件創建urllet url = window.URL.createObjectURL(blob)a.href = urla.download = namea.click()// 銷毀創建的urlwindow.URL.revokeObjectURL(url)}}xhr.send()