2016-05-20 3 views
0

Ich möchte Benutzer auf eine andere Route umleiten, wenn der Code abhängig von den Werten im AJAX-Erfolg zurückgegeben wird. Es funktioniert jetzt großartig Wie schreibe ich das Skript, um auf die nächste Route wie Redirect in PHP umleiten.wie zu einer anderen Seite in Python-Pyramide über Ajax bei Erfolg umleiten

AJAX, um den Code zu überprüfen passt und es funktioniert gut. Was kommt als nächstes

<script> 
$("#codeModal form").submit(function(event) { 
     event.preventDefault(); 
     var codetyped=$(this).find(".codeinput").val(); 
     $.ajax({ 
      type:"post", 
      url:"{{request.route_url('testingajax')}}", 
      data:{'codetyped':codetyped}, 
      success:function(res){ 
       alert(res); 
      } 
     }); 
     }); 
</script> 

Hier ist der Ansicht Config

@view_config(route_name='testingajax', renderer='json') 
def hello(request): 
    # return request.session['secretcode'] 
    # return request.params.get('codetyped') 
    if int(request.params.get('codetyped')) == request.session['secretcode']: 
     return 'Success' 
    else: 
     return 'Error' 
+1

vielleicht gibt die Ziel-URL auf die AJAX-Antwort, und dann hat das AJAX verwenden 'window.location.href' etc zu dieser URL zu gehen (Milanzor Antwort unten) – mmcrae

+0

http://stackoverflow.com/questions/199099/how-to-manage-a-redirect-Anfrage-nach-a-jquery-ajax-Aufruf? Rq = 1 <- ähnliche SO Frage mit viel Aufmerksamkeit – mmcrae

Antwort

3

Ich bin nicht in Python, aber es scheint, dass Sie entweder ‚Erfolg‘ oder ‚Fehler‘ zu Ihrem Ajax-Aufruf zurückkehren.

Innerhalb Ihrer Ajax-Erfolgsrückruffunktion können Sie einfach den zurückgegebenen Wert überprüfen und von dort weiterleiten.

success:function(res){ 
    // Test if there is a returned value in the res variable 
    if(typeof res !== 'undefined'){ 

     // Check the res variable from a few options 
     switch(res){ 
      case 'Success': 
       window.location.href='/some-success-page.html'; 
      break; 
      case 'Error': 
       window.location.href='/some-error-page.html'; 
      break; 
     } 
    } 
} 
+0

Ich habe versucht, jquery verwenden laden statt vergaß dies existieren . hat funktioniert –

Verwandte Themen