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

Postman预请求脚本问题:从响应提取值并设置全局变量失败

解决Postman预请求脚本中无法提取响应头API_TOKEN的问题

你的核心问题是响应头属性名用错了:Postman通过pm.sendRequest返回的响应对象里,存储响应头的属性是复数形式的headers,而非单数header,这就是为什么console.log(response.header)输出undefined,但打印整个response能看到对应数组的原因。

另外,直接通过数组索引response.headers[3]取值风险很高——响应头的顺序可能随服务器配置变化,推荐用headers.get()方法直接按名称获取目标头,更稳定。

修正后的完整代码如下:

pm.sendRequest({
    url: pm.globals.get("GET_API_TOKEN_URL"),
    method: "GET",
    header: {
        clientId: pm.globals.get("GET_API_TOKEN_CLIENT_ID"),
        clientSecret: pm.globals.get("GET_API_TOKEN_CLIENT_SECRET")
    }
}, function (error, response) {
    if (error) {
        console.error('请求出错:', error);
        return;
    }
    // 正确获取响应头集合
    console.log(response.headers);
    // 按名称直接获取apitoken,避免依赖索引顺序
    const apiToken = response.headers.get('apitoken');
    if (apiToken) {
        pm.globals.set("API_TOKEN", apiToken);
        console.log('API_TOKEN已成功设置:', apiToken);
    } else {
        console.error('未在响应头中找到apitoken字段');
    }
})

补充说明:

  • 增加了请求错误处理,避免请求失败时后续代码抛出异常
  • headers.get()方法会自动忽略头名称的大小写,适配不同服务器的返回格式

内容的提问来源于stack exchange,提问作者friend.code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:25:24