Postman怎么发送带Token的请求?Vue里能拿到,但Postman总401

萌新.梓宸 阅读 39

我在Vue里调接口能正常带上Authorization头,但用Postman测试同一个接口总是返回401,是不是我Header写错了?

这是我在Vue组件里的请求代码:

<script>
export default {
  methods: {
    fetchData() {
      fetch('/api/data', {
        headers: {
          'Authorization': 'Bearer ' + localStorage.getItem('token')
        }
      })
    }
  }
}
</script>

Postman里我在Headers加了 Key: Authorization,Value: Bearer xxxxx(直接复制localStorage里的token),但还是不行,到底哪里漏了?

我来解答 赞 5 收藏
二维码
手机扫码查看
2 条解答
令狐巧梅
这个问题很常见,我在调试接口时也经常遇到。先分析下可能的原因:

1. Token格式问题:检查Postman里Bearer后面是否确实有空格。Vue代码里是'Bearer ' + token,这个空格必须保留。很多人复制token时会漏掉空格。

2. Token有效期:确认下Postman用的token是否过期。localStorage里的token可能已经刷新了,但你在Postman里用的是旧token。可以console.log最新token对比下。

3. 请求URL差异:Vue里是相对路径'/api/data',但Postman需要完整URL。如果你本地开发服务器是http://localhost:3000,那Postman里应该是http://localhost:3000/api/data。跨域问题也可能导致401。

4. 环境变量:有些框架会在开发环境下自动处理认证,但Postman不会。确保你的后端API在无框架环境下也能正常验证token。

具体操作步骤:
1. 在Chrome开发者工具里查看Network面板,找到成功的请求,复制完整的Headers信息
2. 在Postman里完全按照这个Headers设置,特别注意:
- Authorization头的完整值
- Content-Type头(如果有)
- 其他自定义头(比如X-Requested-With)

// 示例:正确的Postman设置
// Headers标签页添加:
// Key: Authorization
// Value: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c


如果还是401,建议:
1. 直接在浏览器地址栏访问/api/data,带上token测试:
curl -H "Authorization: Bearer your_token_here" http://localhost:3000/api/data

2. 检查后端日志,看它收到的具体headers是什么
3. 用Postman的Raw模式查看实际发出的请求头

最后还有个常见坑点:如果你的token是通过httpOnly cookie设置的,Postman需要额外开启"Send cookies"选项。不过从你的Vue代码来看应该不是这种情况。

我调试这类问题时通常会新建一个最简单的测试用例,排除其他干扰因素。比如先用curl测试,再逐步增加复杂度到Postman。
点赞
2026-03-07 00:00
Designer°玉银
代码给你,你对比下是不是这几个坑里踩了:

1. 确认你 localStorage 里的 token 是不是带空格或者换行的,比如复制的时候不小心带了前后空格,直接 trim() 一下试试:

localStorage.getItem('token').trim()


Postman 里别手输,直接点 Authorization 下拉框选 Bearer Token,然后右边输入 token,别自己拼 Bearer 前缀,Postman 会自动加。

2. 检查接口是不是走 /api/xxx 这种代理路径,你 Postman 直接请求了后端真实地址,比如 http://localhost:8080/data,而 Vue 里是 http://localhost:3000/api/data,代理层可能做了 token 转发或校验,但后端原生接口没处理,导致 401。

3. 检查 token 有没有过期,Postman 里直接把 localStorage 里的 token 复制出来用 jwt.io 解码看下 exp 字段,别用快过期的 token 测试。

4. 最关键的一点:Postman 里 Headers tab 下确认 Authorization 是唯一一个叫这个名字的 key,别重复写了 AuthorizationauthoriZation(大小写问题在某些服务器会出问题,虽然 RFC 说不区分,但实际 nginx 或某些中间件会挂)。

如果还 401,直接在后端加个日志打印 req.headers.authorization,看 Postman 发过去的值到底长啥样,90% 的问题都能定位在这一步。
点赞 2
2026-02-25 11:22