利用get post 请求下载文件
post请求
function downLoadFile (url, params, fileName) {
const xhr = new XMLHttpRequest()
xhr.open('post', url)
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.responseType = 'blob'
xhr.send(JSON.stringify(params))
xhr.onreadystatechange = () => {
if (xhr.readyState === 4 && xhr.status === 200) {
// 兼容IE,只有IE浏览器的navigator有这个方法,谷歌浏览器没有
if (navigator.msSaveBlob) {
return navigator.msSaveBlob(xhr.response, fileName)
}
const blobUrl = URL.createObjectURL(xhr.response)
const link = document.createElement('a')
link.href = blobUrl
link.download = fileName
link.click()
}
}
}
get请求
url = url + '?';
for (let key in param) {
// 去掉 "
let keyStr = JSON.stringify(key).replace(/"/g, '');
if (param[keyStr] === undefined) {
continue
}
if (param[keyStr] === null) {
param[keyStr] = ''
}
url += `${keyStr}=${param[keyStr]}&`//拼接参数
}
url = url.substring(0, url.lastIndexOf('&'))//去掉末尾&
window.open(url)
post请求来源: https://blog.csdn.net/bye_cherry/article/details/109373781