2013-07-17 4 views
8

ich Benutzer von einer Seite zu einer anderen Seite in Node.js (plain node.js)Redirect auf verschiedene Seiten-URL in Node.js (nicht in ausdrücklicher oder anderen Frameworks)

Real life Szenario umleiten möge: Afer signup (example.com/sigup), nach erfolgreicher Anmeldung möchte ich Benutzer zur Anmeldeseite umleiten (example.com/login).

if (signUpSuccessful(request, response)) {  
    // I want to redirect to "/login" using request/response parameters. 
} 
+2

Duplizieren von http://stackoverflow.com/questions/ 4062260/nodejs-redirect-URL? –

Antwort

11

Es ist ganz einfach:

if (signUpSuccessful(request, response)) { 
    response.statusCode = 302; 
    response.setHeader("Location", "/login"); 
    response.end(); 
} 

Dies wird Ihre Benutzer auf die /login URL mit einem 302 Found Status umleiten und die Reaktion beenden. Stellen Sie sicher, dass Sie zuvor nicht response.write() aufgerufen haben, sonst wird eine Ausnahme ausgelöst.

4

Der einfachste Weg ist die Verwendung eines 302 status code und eines Ortsfeldes mit der Ziel-URL.

Der HTTP-Response-Statuscode 302 Found ist eine gebräuchliche Art, eine Umleitung durchzuführen.

Eine HTTP-Antwort mit diesem Statuscode gibt zusätzlich eine URL im Header-Feld Standort an. Der Benutzer Agent (z. B. ein Webbrowser) wird durch eine Antwort mit diesem Code aufgefordert, eine zweite, ansonsten identische Anforderung an die neue URL im Feld Standort zu senden. Die HTTP/1.0-Spezifikation (RFC 1945) definiert diesen Code und gibt ihm die Beschreibung "temporär verschoben".

Quelle: Wikipedia

res.statusCode = 302; 
res.setHeader("Location", '/login'); 
res.end(); 
0

Eine einfachere Art und Weise:

res.redirect(307, '/login'); 

Weitere Details in der Antwort von this post

Verwandte Themen