需求:常见的传递参数都是将参数写在花括号里面,但是有时候花括号并不适合,可以选择将参数拼接到接口后面
let url =
this.paramConfig.httpPath +
'/basedata/download?baseDataID=' +
ss.join(',') +
'&Area=' +
window.sessionStorage.getItem('userArea')
完整的代码如下,实现一个下载的功能
let url =
this.paramConfig.httpPath +
'/basedata/download?baseDataID=' +
ss.join(',') +
'&Area=' +
window.sessionStorage.getItem('userArea')
this.$axios
.get(url, { responseType: 'blob' })
.then((res) => {
let fileName = res.headers['content-disposition']
let index = fileName.lastIndexOf('=')
fileName = fileName.substring(index + 1, fileName.length)
const blob = new Blob([res.data], {
type: 'application/octet-stream;charset=utf-8',
})
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
// const name = fileName
downloadElement.href = href
downloadElement.download = '文件.zip'
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement) // 下载完成移除元素
window.URL.revokeObjectURL(href) // 释放掉blob对象
this.closeFullScreen(this.openLoading())
})
.catch((err) => {
this.closeFullScreen(this.openLoading())
console.log(err)
})
记录另一种参数放在url里面的方式
const res = await this.$http.get(
`http://192.168.20.227:8091/task/find/${this.zhi.id}`,
{
headers: {
'Content-Type': 'application/json;charset=UTF-8',
},
}
)
const { data: res } = await this.$http.get(
`categories/${this.cateId}/attributes`,
{
params: { sel: 'many' }
}
)