options是发送请求的对象参数
const options={}
options.method='POST'
options.headers={
Accept:'application/json,text/plain,*/*',
'Content-Type':'application/x-www-form-urlencoded'
}
options.body={
params1:'xxx'
}
const download=()=>{
return fetch(url,options).then(checkStatus).then(res=>res.blob().then(blob=>{
return new Promise((resolve,reject)=>{
const reader=new FileReader()
reader.onload=e=>{
const text=reader.result
try {
const data=JSON.parse(text)
if(data.error_code){
error(data.error_code,data.error_message)
resolve({success:false})
}else{
throw new Error('this is a Error')
}
} catch (error) {
let newFileName=res?.headers?.get('Content-Disposition')?.split(';')[1]?.split('=')[1]
newFileName=decodeURIComponent(newFileName)
let a=document.createElement('a')
const fileUrl=window.URL.createObjectURL(blob)
a.href=fileUrl
a.download=newFileName || 'test.txt'
a.click()
window.URL.revokeObjectURL(url)
resolve({success:true})
}
}
reader.readAsText(blob)
})
}))
}