Wie man eine Weiterleitung im http.Holen Sie sich in AngularJS?

Arbeite ich an einer website für Trainer zu helfen, Menschen gesünder Leben durch den Einsatz von sozialen Medien. Auf den moment, in dem ich arbeite, den Zugang zu Twitter über OAuth in einem ExpressJS server mit AngularJS im frontend.

Aus der website von AngularJS:

Antwort-Statuscode zwischen 200 und 299 ist als ein Erfolg, status und Ergebnis in der Erfolgs-callback aufgerufen wird. Beachten Sie, dass, wenn die Antwort eine Umleitung, XMLHttpRequest transparent zu Folgen, was bedeutet, dass der Fehler callback wird nicht aufgerufen werden, für solche Antworten.

Den vollständigen code von meinem server gefunden werden kann, in web.js und twitter.js auf github, aber dies ist der Anrufer:

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

- Und dies ist der angerufene in 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);      
    }
  });
});

Wenn ich die Option mit tcpdump (sorry, ich bin altmodisch) ich sehe:

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

Das ist wirklich schön natürlich, und in der Tat passiert, wenn ich auf diesem server /sessions/connect manuell in den browser. Allerdings mit AngularJS, mein browser-Bildschirm ist eigentlich nicht umgeleitet. Warum nicht?

Schreibe einen Kommentar