Comment suivre une redirection http.obtenir dans AngularJS?

Je suis en train de travailler sur un site web pour les entraîneurs pour aider les gens à avoir une vie plus saine en utilisant les médias sociaux. Sur le moment, je travaille sur l'accès à Twitter via OAuth dans un ExpressJS serveur avec AngularJS dans le frontend.

De la site web de AngularJS:

Un code d'état de réponse entre 200 et 299 est considéré comme un état de réussite, le succès de callback qui est appelée. Notez que si la réponse est une redirection, XMLHttpRequest de manière transparente le suivre, ce qui signifie que l'erreur de rappel ne sera pas appelé pour ces réponses.

Le code complet de mon serveur peut être trouvé dans web.js et twitter.js sur github, mais c'est l'appelant:

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;
    });
  };
}

Et c'est le destinataire de l'appel à 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);      
    }
  });
});

Si je vérifie avec tcpdump (désolé, je suis à l'ancienne) je vois:

Connection:.keep-alive....Moved.Temporarily..Redirecting.to.https://api.twitter.com/oauth/authorize?oauth_token=***

C'est vraiment gentil, bien sûr, et d'ailleurs le cas quand je vais à ce serveur /sessions/connect manuellement dans le navigateur. Cependant, avec AngularJS l'écran de mon navigateur n'est pas réellement redirigés. Pourquoi pas?

OriginalL'auteur Anne van Rossum | 2013-07-05