Javascript 节点JS:即使更改url,响应也不会更改

Javascript 节点JS:即使更改url,响应也不会更改,javascript,node.js,Javascript,Node.js,我正在尝试登录teeSpring.com,然后使用登录cookie从另一个url获取响应。任何人登录teeSpring.com时,都会返回仪表板详细信息。 但是,每当我试图获取第二个url时,teeSpring都会返回相同的仪表板详细信息。如果我在Chrome的REST客户端中同时点击两个url,它会返回预期的不同响应。那么我的请求有什么问题吗? 注意:如果任何人需要用户名/密码进行测试,请告诉我 以下是代码: var http = require('http'), express =

我正在尝试登录
teeSpring.com
,然后使用登录cookie从另一个url获取响应。任何人登录teeSpring.com时,都会返回仪表板详细信息。
但是,每当我试图
获取第二个url时,teeSpring都会返回相同的仪表板详细信息。
如果我在Chrome的REST客户端中同时点击两个url,它会返回预期的不同响应。
那么我的请求有什么问题吗?

注意:如果任何人需要用户名/密码进行测试,请告诉我

以下是代码:

var http = require('http'),
    express = require('express'),
    request = require('request');

var request = request.defaults({jar:true});

app.post('/login', [express.urlencoded(), express.json()], function(req, res) {
    request.post({
      url: 'http://teeSpring.com/login/submitLogin',
      form: {
        email: req.body.email,
        password: req.body.password
      }
    }, function(error, response, body) {
      if (error) {
        res.send(400, "There is some problem  here.");  
      } else if(response) {
        if(response.statusCode == 302 && response.headers && response.headers.location) {         
          request.get('http://analytics.teeSpring.com', function(error, response, analyticsBody){
            if(!this.error && this.response.statusCode==200) {
              res.send(analyticsBody);
            }
          });
        }
      } else {
        console.log('WTF');
      }

    });

我用一些代码创建了Github的要点:

只需将require('supertest')替换为require('superagent')。

使用此模块,可以轻松地将cookie附加到您的请求

基本上,您需要附加从POST请求收到的cookie,以便对GET请求进行身份验证

这句话很重要:

function saveCookies (res) {
  agent.saveCookies(res);
}
发送POST和GET请求(保存cookie在request.js中完成):

还要更改我在request.js文件中使用的路径。在您的情况下,您不能提供baseurl,因为它们是不同的


我希望这能解决你的问题

我不确定,但请尝试重命名GET回调函数参数
error
response
。这取决于您是否使用严格模式,但相同的变量名可能会生效,也可能不会生效(即使使用此模式)…运气不好。还是同样的问题。你能调试你的node.js代码吗?在行
res.send(analyticsBody)上设置断点
解析体
真的等于
正文
吗?奇怪的是
正文
是空的,但是
解析体
的内容应该在
正文
中。我猜GET请求没有使用POST(登录)返回值中返回的身份验证令牌。
请求
类是否应该自动为您处理此问题?如果不是,您应该添加来自POST call返回值的身份验证信息来获取请求。
request
  .post('/login')
  .send(formData)
  .end(function (err, res) {
    request
      .get('/test') 
      .end(function (err, res) {
         // some code        
       });
   });