前端下载xml文件 ,前端框架easyui

项目本身的端口是默认80,现在有下载需求是对应下载网站根目录以外的xml 文件,本人就在nginx.conf配置了新的 server 端口82, 用来下载对应的文件,但是前端A标签,下载时,总是在浏览器直接打开

img

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,点击的时候写一个打开文件的方法就好了