Vue下载服务,url需要跳转,但是必须带token

大家好

下载后台服务代码

@GetMapping("/dlFile")

public HttpServletResponse dlFile(String wfile, String name, HttpServletResponse response) throws Exception {

logger.info("dlFile0000000000: " );

logger.info("dlFile: " + wfile );

wfile = wfile.replace("_", “.”);

try {

InputStream fis = new BufferedInputStream(

new FileInputStream(PropertiUtil. getProperties (“filstoredir”) + “/” + wfile));

byte [] buffer = new byte [fis.available()];

fis.read(buffer);

fis.close();

response.reset();

response.addHeader(“Content-Disposition”, “attachment;filename=” + new String(name.getBytes()));

OutputStream toClient = new BufferedOutputStream(response.getOutputStream());

response.setContentType(“application/octet-stream”);

toClient.write(buffer);

toClient.flush();

toClient.close();

} catch (IOException ex) {

ex.printStackTrace();

}

return response;

}

前台

我们之前都是一个A标签,然后href过去

但是VUE里面调用服务是需要TOKEN的

这可怎么实现呢?请指教!!!

1、用a标签,只能用于token在url上或者在cookie里面这两种情况,token如果是在header里面就没办法,必须用第二种方法
2、ajax请求,然后用URL.createObjectURL生成一个链接,再window.open这个链接