项目本身的端口是默认80,现在有下载需求是对应下载网站根目录以外的xml 文件,本人就在nginx.conf配置了新的 server 端口82, 用来下载对应的文件,但是前端A标签,下载时,总是在浏览器直接打开
location ~ .*.(gif|jpg|jpeg|bmp|png|mp3|wma|mp4|swf|txt|xml)$ {
add_header Content-Disposition "attachment;";
}
nginx server配置中增加如上配置。将请求对应文件当作附件下载,望采纳。
axios({
method: 'get',
url: url,
headers: {
'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
tokenId: tokenId,
},
responseType: 'blob', //设置响应的数据类型为一个包含二进制数据的 Blob 对象,必须设置!!!
})
.then((response) => {
if (response.data.type == 'application/json') {
const reader = new FileReader();
reader.readAsText(response.data);
reader.onload = (e) => {
let result = JSON.parse(reader.result);
message.error(result.msg);
};
} else {
let objectURL = getObjectURL(response.data);
let btn = document.createElement('a');
btn.download = decodeURI(response.headers['content-disposition']); //文件类型
btn.href = objectURL;
btn.click();
URL.revokeObjectURL(objectURL);
btn = null;
message.success(mes + '成功');
}
})
.catch(function (error) {
message.error(mes + '失败');
});
https://blog.csdn.net/qq_40312160/article/details/82683501
找到 nginx的conf目录下的 mime.types
删掉text/xml xml;
这一行
重启nginx
之后浏览器访问你的网站的.xml文件就是下载了
不要加href,点击的时候写一个打开文件的方法就好了