因为后端采用了请求头携带token的方式来进行权限验证,前端下载文件使用的是a标签。而a标签不经过处理无法携带请求头,所以用a标签发送的请求无法通过权限验证。所以想问一下Vue中a标签如何携带请求头?
因为后端采用了请求头携带token的方式来进行权限验证,前端下载文件使用的是a标签。而a标签不经过处理无法携带请求头,所以用a标签发送的请求无法通过权限验证。所以想问一下Vue中a标签如何携带请求头?
这种需要后端配合,一般的方案是后端改造下获取 token 的方式:
前端就可以再 url 上增加token参数了,比如download?token={your token}
其实 session/cookie 也是这么玩的,当浏览器禁用 cookie 之后,有些 server 支持 url 中带 sessionid 的方式。
比如 jsp 的 <c:url>
就会自动给 url 加上 sessionid 参数
9 回答1.7k 阅读✓ 已解决
6 回答1.5k 阅读
3 回答1.4k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
3 回答1.1k 阅读
2 回答1.2k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
没办法。 如果后端非要 header 带 token,那么你就使用 ajax 去接收,然后类型改成 blob,然后去下载这个资源。