前端适用axios请求下载文件,后端使用java返回。头部需要带请求信息

13 篇文章 0 订阅
4 篇文章 0 订阅

问题:由于下载文件需要带头部的时区或者token,所以不能模拟a标签重新请求,

已解决:

前端如下

1. 我的请求

isDownload: true,

responseType: 'blob', // arraybuffer

这两个参数

2. 我用的是axios里面的拦截器。

根据请求的参数判断是否是文件下载

以上是前端的代码

后端如下:

加入一个重要的自定义头部

如果前端看不到自定义头部。请适用跨域设置。连接我的另一篇文章。

 

 

前端代码示例: ```javascript import axios from 'axios'; const token = 'your_token_here'; axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; axios.post('/api/your_endpoint', { data: 'your_data_here' }) .then(response => console.log(response)) .catch(error => console.error(error)); ``` 后端代码示例: ```java import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class YourController { @PostMapping("/api/your_endpoint") public String yourEndpoint(@RequestBody YourRequestDto request) { String token = request.getAuthorizationHeader(); // do something with the token return "Success"; } public static class YourRequestDto { private String data; private String authorizationHeader; public String getData() { return data; } public void setData(String data) { this.data = data; } public String getAuthorizationHeader() { return authorizationHeader; } public void setAuthorizationHeader(String authorizationHeader) { this.authorizationHeader = authorizationHeader; } } } ``` 在前端中,我们使用axios的`defaults.headers.common`属性来设置请求头部,即发送token,具体来说,我们设置了Authorization头部,值为Bearer加上token字符串。在后端中,我们使用`@RequestBody`注解来获取前端发送的数据,然后通过`YourRequestDto`类的`getAuthorizationHeader()`方法获取Authorization头部的值,即获取到了前端发送的token。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值