Jak śledzić przekierowanie w http.get w AngularJS?
Pracuję nad stroną internetową dla trenerów, aby pomóc ludziom w zdrowszym życiu dzięki mediom społecznościowym. W tej chwili pracuję nad dostępem do Twittera poprzez OAuth na serwerze ExpressJS z AngularJS w interfejsie.
Odstrona internetowa AngularJS:
Kod statusu odpowiedzi między 200 a 299 jest uważany za status powodzenia i spowoduje wywołanie wywołania zwrotnego sukcesu. Zauważ, że jeśli odpowiedź jest przekierowaniem, XMLHttpRequest przejdzie w sposób przezroczysty, co oznacza, że wywołanie zwrotne błędu nie zostanie wywołane dla takich odpowiedzi.
Pełny kod mojego serwera można znaleźć wweb.js itwitter.js na github, ale to jest dzwoniący:
function LoginCtrl($scope, $http, $location) {
$scope.welcome = 'Sign in with Twitter';
$http.defaults.useXDomain = true;
$scope.submit = function() {
$http({method: 'GET', url: '/sessions/connect'}).
success(function(data, status) {
$scope.welcome = data;
});
};
}
I to jest callee w web.js:
app.get('/sessions/connect', function(req, res){
consumer().getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret, results){
if (error) {
res.send("Error getting OAuth request token : " + sys.inspect(error), 500);
} else {
req.session.oauthRequestToken = oauthToken;
req.session.oauthRequestTokenSecret = oauthTokenSecret;
res.redirect("https://api.twitter.com/oauth/authorize?oauth_token="+req.session.oauthRequestToken);
}
});
});
Jeśli sprawdzętcpdump
(przepraszam, jestem staroświecki) Widzę:
Connection:.keep-alive....Moved.Temporarily..Redirecting.to.https://api.twitter.com/oauth/authorize?oauth_token=***
To naprawdę miłe, oczywiście, i rzeczywiście dzieje się, gdy idę na ten serwer/sessions/connect
ręcznie w przeglądarce. Jednak w AngularJS mój ekran przeglądarki nie jest faktycznie przekierowany. Dlaczego nie?