fetch下载功能
fetch下载功能(需要后台同学的配合)
下面展示一些 内联代码片
。
const postDownloadFile = (url = ``, data = {}) => {
console.log('?')
// let formData = new FormData()
// for(let key in data) {
// formData.append(key, data[key])
// }
// Default options are marked with *
return fetch(url, {
method: 'GET', // *GET, POST, PUT, DELETE, etc.
mode: 'same-origin', // no-cors, cors, *same-origin
cache: 'default', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, same-origin, *omit
headers: {
// "Content-Type": "application/json; charset=utf-8",
'Content-Type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest'
// "Content-Type": "multipart/form-data",
},
redirect: 'follow', // manual, *follow, error
referrer: 'client' // no-referrer, *client
//credentials: "include", //携带cookie
//body: json2search(data)
// body: JSON.stringify(data), // body data type must match "Content-Type" header
})
.then(res =>
res.blob().then(blob => {
var a = document.createElement('a')
var url = window.URL.createObjectURL(blob)
// var filename = res.headers.get('Content-Disposition')
var filename = 'attachment;filename=' + data.name + '.xlsx'
a.href = url
a.download = filename.replace('attachment;filename=', '')
a.click()
window.URL.revokeObjectURL(url)
})
)
.catch(error => console.error(`Fetch Error =\n`, error))
}