2016-07-25 6 views
0

Ich möchte Daten von HTML-Ansicht zu Django-Backend senden, um zu verarbeiten und dann sendet das Back-End eine URL zurück zur HTML-Ansicht, die den Benutzer auf eine andere Seite umleiten wird. Es ist so:sende url an ajax success() von Django backend

Page 1 ---- Benutzer-Eingabedaten --- Ajax ---> --- Backend Prozess --- eine URL zu Seite 2 --- Ajax -> Seite 2

Das Problem ist, dass ich nicht weiß, wie die URL zurück Ajax nach der Verarbeitung von Benutzerdaten senden, so muss ich umleiten mit window.location.href = '/'. Aber ich denke, der Code ist auf diese Weise nicht sauber. Ich frage mich, ob es eine Möglichkeit gibt, url vom Backend zu Ajax 'Erfolg zu schicken.

Hier ist der Code n die HTML:

function doSomething(data){ 
    $.ajax({ 
     type: "POST", 
     url: URL_POST_BY_AJAX, 
     data: { 
      'data' : data, 
      }, 

     success: function (response) { 
      window.location.href = '/'; 
     }, 
     error: function (data) { 
      alert('failed'); 
     } 
    });} 

Bitte mir helfen. Vielen Dank!

Antwort

1

In Ihrer Verarbeitung Ansicht:

from django.http.response import JsonResponse 
def whatever_your_view_name_is(request): 
    (data processing...) 
    return JsonResponse({'url': the_url_to_page_2) 

dann in Ihrem JS:

 (...) 
     success: function (response) { 
      window.location.href = response.url; 
     }, 
     (...) 
+0

Sie Rafalmp Dank, es funktioniert wirklich! :) –