2014-03-02 57 views
1

我正在嘗試登錄到站點以取消數據。登錄工作正常,如果試圖通過Chrome Rest Client來完成,但從節點服務器我得到status code 302從網站。
代碼從nodejs服務器登錄到其他站點

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



var app = express(); 
    app.listen(3000); 

var request = request.defaults({jar:true}); 
app.post('/login', [express.urlencoded(), express.json()], function(req, res) { 
    console.log('You are here'); console.log(JSON.stringify(req.body.email)); 
    request.post({ 
     url: 'http://teeSpring.com/login/submitLogin', 
     form: { 
     email: "himanshu", 
     password: "himanshu" 
     } 
    }, function(error, resposne, body) { 
     if (error) { 
     console.log('Error is: '+JSON.stringify(error)); 
     } else if(body){ 
     console.log('Body is :')//+JSON.stringify(body)); 
     } else if(resposne) { 
     console.log('Response is :'+resposne.statusCode);//+JSON.stringify(resposne)); 
     res.send(resposne); 
     } else { 
     console.log('WTF'); 
     } 

    }); 

}); 
+0

您是否嘗試過打它通過https呢? –

+1

狀態302用於重定向。應該沒問題。請求庫應該在默認情況下處理它。 – palanik

+0

是的。使用'https'更改網址的結果仍然相同。 –

回答

1

你可以做這樣的事情 - 如果重定向,獲得頭位置和去那裏:

else if(response) { 
    console.log('Response is :'+response.statusCode);//+JSON.stringify(response)); 
    if(response.statusCode == 302 && response.headers && response.headers.location) { 
     res.send(response.headers.location); 
    } 
    } 
+0

它實際上是在登錄後返回'http:// teespring.com/dashboard'這是正確的URL。但我想重定向到這個位置。 –

+0

不確定您的意思是「重定向」。獲得該位置後,發送另一個http請求「http.get(response.headers.location,function(res){})」以獲取該URL的正文。 –

相關問題