节点JS:即使更改了URL,响应也不会被更改

我正在尝试login到teeSpring.com然后使用logincookie从另一个url获得响应。 当有人login到teeSpring.com时,它将返回仪表板的详细信息。
但是,无论何时我试图获得第二个url,teeSpring都会返回相同的仪表板详细信息。
如果我在Chrome的REST客户端中同时访问了这两个url,则会返回不同的响应。
那么我的要求有什么问题呢?

注意:如果有人需要用户名/密码进行testing,请告诉我。

这是代码:

 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上创build了一些Github的代码: https : //gist.github.com/Stofkn/11397460

用require('superagent')replacerequire('supertest')。 https://github.com/visionmedia/superagent

通过这个模块,可以很容易地将cookie附加到您的请求中。

基本上,您需要附加从POST请求收到的cookie,以便您对GET请求进行validation。

线是重要的:

 function saveCookies (res) { agent.saveCookies(res); } 

发送POST和GET请求(保存cookie在request.js中完成):

 request .post('/login') .send(formData) .end(function (err, res) { request .get('/test') .end(function (err, res) { // some code }); }); 

还要更改我在request.js文件中使用的path。 在你的情况下,你不能给一个baseurl,因为他们是不同的。

我希望这将解决您的问题!