Почему сессия в Flask не сохраняется при запросе через ajax

Рейтинг: 0Ответов: 0Опубликовано: 09.04.2023

делаю авторизацию в Flask, а данные на сервер отправляю через ajax. Вот код js:

var form_av = document.getElementById('form-av');
form_av.addEventListener('submit', av);

function av(e) {
    e.preventDefault();

    var formData = new FormData(form_av);
    var email = formData.get('input-av-email');
    var pass = formData.get('input-av-password');

    var errors = document.getElementById('errors-av');
    errors.textContent = '';

    $.ajax({
        type: 'POST',
        url: '/av',
        data: {
            'email': email,
            'pass': pass
        },
        success: function(res) {
            res = JSON.parse(res);
            if (res['status'] == 'no') {
                errors.textContent = 'Аккаунт не найден';
            } else {
                location.reload();
            }
        }
    })
}

Вот код flask:

@app.route('/av', methods=['GET', 'POST'])
def av():
    email = request.form['email']
    password = request.form['pass']

    db = UsersBase()
    r = db.av_user(email=email, password=password)

    if r is not False:
        session['user-name'] = r[1]
        session['json'] = r[4]
        return json.dumps({'status': 'ok'})

    else:
        return json.dumps({'status': 'no'})

Так сессии сохраняются до следующего перезахода на сайт, хотя длительность сессий я настроил:

app.config['PERMANENT_SESSION_LIFETIME'] = datetime.timedelta(days=365)

Я пытался найти решение, узнал, что после добавления данных в сессию надо сделать редирект, но можно ли сохранить сессию без редиректа?

Ответы

Ответов пока нет.