Vue a标签如何携带请求头?

新手上路,请多包涵

因为后端采用了请求头携带token的方式来进行权限验证,前端下载文件使用的是a标签。而a标签不经过处理无法携带请求头,所以用a标签发送的请求无法通过权限验证。所以想问一下Vue中a标签如何携带请求头?

阅读 10.2k
2 个回答

没办法。 如果后端非要 header 带 token,那么你就使用 ajax 去接收,然后类型改成 blob,然后去下载这个资源。

这种需要后端配合,一般的方案是后端改造下获取 token 的方式:

  1. 优先从 header 中获取
  2. 如果 header 中没有,就从 query string(parameter)中获取

前端就可以再 url 上增加token参数了,比如download?token={your token}

其实 session/cookie 也是这么玩的,当浏览器禁用 cookie 之后,有些 server 支持 url 中带 sessionid 的方式。

比如 jsp 的 <c:url> 就会自动给 url 加上 sessionid 参数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题