You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman中从请求B测试脚本触发请求A时授权失败的解决方法

解决Postman脚本触发请求时的Unauthorized问题

你遇到的Status: Unauthorized问题,本质是pm.sendRequest发起的请求不会自动继承集合或父级的授权配置——哪怕请求B已经设置了「继承自父级」,脚本里的请求A还是得手动配置授权信息。下面是几种实用的解决方案:

1. 复用当前请求的授权头(推荐)

请求B已经继承了集合的Bearer Token授权,你可以直接从请求B的请求头中提取Authorization的值,加到请求A的配置里,这样既不用硬编码Token,还能同步集合的授权更新:

// 从当前请求(请求B)的headers中获取已授权的Authorization头
const authHeader = pm.request.headers.get('Authorization');

var request = {
    method: 'POST',
    url: 'https://your-request-a-url', // 替换为请求A的实际完整URL
    headers: {
        'Content-Type': 'application/json',
        'Accept':'application/json',
        'Authorization': authHeader // 复用获取到的授权头
    },
    // 如果请求A需要请求体,取消注释并添加对应内容
    // body: {
    //     mode: 'raw',
    //     raw: JSON.stringify({ key: 'your-value' })
    // }
};

pm.sendRequest(request, function (err, res) {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Request sent successfully:', res);
});

2. 引用存储Token的变量

如果配置集合授权时,你把Bearer Token存在了集合变量或环境变量中(比如变量名是access_token),直接引用变量会更灵活:

var request = {
    method: 'POST',
    url: 'https://your-request-a-url',
    headers: {
        'Content-Type': 'application/json',
        'Accept':'application/json',
        // 引用集合变量,若为环境变量则替换为pm.environment.get('access_token')
        'Authorization': `Bearer ${pm.collectionVariables.get('access_token')}`
    },
};

pm.sendRequest(request, function (err, res) {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Request sent successfully:', res);
});

额外注意事项

  • 禁止硬编码Token:你之前的代码直接写死Token,不仅不安全,Token过期后还要手动修改,完全没必要。
  • 检查请求URL:确保请求A的url字段填写了完整且正确的地址,空URL会导致请求异常。
  • 验证授权格式:确认Authorization头的格式是Bearer [Token],中间必须有一个空格,格式错误也会触发Unauthorized。

内容的提问来源于stack exchange,提问作者Andromeda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 10:04:54