2017-08-27 3 views
1

Ich verwende eine AJAX-Funktion, um die Benutzeranmeldung zu überprüfen, und ich gebe JSON auf Fehler zurück. Ich wollte auf eine bestimmte URL bei der sukzessiven Anmeldung umleiten, aber ich kann nur Json-Daten von meiner Funktion senden (die Möglichkeit der Verwendung von URL_for oder redirect). So wie bekomme ich dynamisch die Root-URL, so dass ich es über JSON senden und dann über Javascript umleiten kann. here mein route`Flask - Redirect über Javascript auf erfolgreichen JSON

def logincheck(): 
    uname = request.form['username'] 
    pwd = request.form['password'] 
    if uname and pwd: 
     this = userlogin.query.filter_by(username = uname).first() 
     if this: 
      if this.password == pwd: 
       session['myid'] = this.uid 
       return jsonify(success = ?) 
      else: 
       return jsonify(p_error = 'Incorrect Password') 
     else: 
      return jsonify(u_error = 'Incorrect Username') 

Dank.

+0

So endete ich mit location.reload(), um die Seite zu aktualisieren, da der Benutzer angemeldet war. Eine Aktualisierung automatisch auf die gewünschte Seite umgeleitet/ – reevkandari

+0

So etwas wie $ .ajax ({ Typ: "POST “ url: Pfadname, Daten: Daten, Erfolg: function (data) { if (data.redirect) { window.location = data.redirectURL; } }' in der ajax-Aufruf und übergeben Sie die redirectURL Durch Flask 'return jsonify (Daten = Daten)' wo Daten redirectURL usw. – 0decimal0

+0

das Problem hätte immer noch die Root-URL .. Da ich dies auf localhost testen würde die URL wäre anders als die tatsächliche Produktion se rver – reevkandari

Antwort

0

Basis-URL in Javascript zu erhalten,

var base_url = window.location.origin; 

Ausgabe: "http://yoururl.com"

var host = window.location.host; 

Ausgang: yoururl.com

zu URL in JavaScript-Weiterleitung,

// auf eine andere Seite umleiten

`window.location = "http://www.yoururl.com"`; 

// es ein ähnliches Verhalten wie eine HTTP-Umleitung hat

window.location.replace("http://yoururl.com"); 

// es hat ein ähnliches Verhalten wie auf einen Link zu klicken,

window.location.href = "http://yoururl.com"; 

hoffe, dies wird Ihnen helfen.