【问题标题】:Get request's first response status code获取请求的第一个响应状态码
【发布时间】:2026-02-11 16:10:02
【问题描述】:

我请求 example.com,而不是将我重定向到具有 301 或 302 状态的 www.example.com,然后我得到来自 www.example.com 的响应,代码为 200。我想获得所有状态,而不仅仅是最后一个。我在节点服务器中使用“请求”模块。 这是我的代码

 app.post("/check", function(req, res) {
  var link = req.body.url;

  var opts = {
    uri: link,
    gzip: true,
    followRedirect :function (resp) {
      return true;
    }
  };
  request(opts, function (error, res, body) {
    if (res.statusCode > 300 && res.statusCode < 400 && res.headers.location) {
      if (url.parse(res.headers.location).hostname) {
      } else {
      }
    }

【问题讨论】:

    标签: node.js http redirect request http-status-code-301


    【解决方案1】:

    不完全确定你想要的输出是什么,但试试这个:

    app.post("/check", function(req, res) {
      var link = req.body.url;
      var redirectCodes = [];
    
      var opts = {
        uri: link,
        gzip: true,
        followRedirect :function (resp) {
          redirectCodes.push(resp.statusCode);
          return true;
        }
      };
      request(opts, function (error, res, body) {
        res.end(JSON.stringify({
          body: body,
          redirectCodes: redirectCodes
        }, null, 2));
      }
    });
    

    【讨论】:

      最近更新 更多