Как рефрешнуть страницу через ajax запрос?

Всем привет

Делаю "умный логин", который бы позволял юзеры регистрироваться через поп-ап окно и остаться на той же странице.

Проблема: чтобы подрузились элементы, которые зависят от статуса авторизации юзера нужно рефрешнуть страницу, и у меня это не выходит.

Вьюшка

def login(request):
    if request.POST:
        username = request.POST.get('username', '')
        password = request.POST.get('password', '')
        path = request.POST.get('path', '')
        user = auth.authenticate(username=username, password=password)
        if user is not None:
            auth.login(request, user)
            return redirect(path)  #вот это не работает          
        else:
            json = {                
                'error_login': "нет такого пользователя",
                    }
            return JsonResponse(json, safe=False,)
    else:
        json = {
                'error_login': "произошла ошибка",
                    }
        return JsonResponse(json, safe=False,)


Ajax - запрос, который грабает данные + выводит ошибки, если что-то пошло не так.

<script>
$('#login_form').submit(function (e) {
    e.preventDefault();
    var m_username = $('#username').val();
    var m_password = $('#password').val();
    var m_path = $('#path').val();

    $.ajax({
	type: "POST",
	url: {% url 'login' %},
	data: {
	    "username": m_username,
	    "password": m_password,
	    "path": m_path,
	    "csrfmiddlewaretoken" : "{{ csrf_token }}"
	},
	success: function (data) {
	    $('#error_login_message').html(data.error_login);
	}
    });
});
</script>
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
teke_teke
@teke_teke
programador
делайте редирект на эту же страницу, когда пришёл ответ на ajax.
или создайте большой div и рефреште его.
1ый вариант лучше.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы