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

Postman:如何在预请求脚本中打开浏览器窗口/实现重定向?

在Postman预请求脚本中实现未登录时自动打开登录页的方案

Postman的预请求脚本运行在独立沙箱环境中,无法直接触发浏览器页面跳转,但可以通过Postman官方提供的pm.system.openUrl() API在默认浏览器中打开指定登录页面,这是当前场景下的最佳实现方式。

修改后的完整代码

const BASE_URL = "https://auth.example.com";
const API_CLIENT = pm.globals.get("API_CLIENT");

pm.cookies.jar().getAll(BASE_URL, function (error, cookies) {
  pm.sendRequest(
    {
      url: `${BASE_URL}/identitygen?user=${API_CLIENT}`,
      cookies: cookies,
    },
    function (err, res) {
      try {
        if (err) {
          // 请求出错(如网络问题、未授权)
          pm.alert("未检测到有效登录状态,即将跳转至登录页面");
          pm.system.openUrl(BASE_URL, { focus: true });
          return;
        }
        
        // 检测响应状态码,401代表未授权/登录过期
        if (res.code === 401) {
          pm.alert("登录状态已过期,即将跳转至登录页面");
          pm.system.openUrl(BASE_URL, { focus: true });
          return;
        }

        pm.globals.set("TECHNICAL_API_IDENTITY", res.json().identity);
      } catch (error) {
        // JSON解析失败,大概率是未登录导致响应格式不符合预期
        pm.alert("登录验证失败,即将跳转至登录页面");
        pm.system.openUrl(BASE_URL, { focus: true });
      }
    }
  );
});

关键说明

  • pm.system.openUrl(url, options):Postman官方API,用于在默认浏览器中打开指定URL,{ focus: true }参数会让浏览器窗口自动获得焦点。
  • 多场景覆盖:不仅在JSON解析失败的catch块处理跳转,还提前判断请求错误和401状态码,覆盖更多未登录的触发场景。
  • 用户反馈:用pm.alert()给出明确提示,避免跳转行为显得突兀。

注意事项

  1. 确保Postman允许打开外部链接:默认情况下Postman允许此操作,若被禁用可在设置中检查相关权限。
  2. 登录后同步Cookie:登录完成后,需确保Postman Interceptor已同步最新浏览器Cookie,可手动刷新请求或重新运行预请求脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:32:13