Почему сессия в Flask не сохраняется при запросе через ajax
делаю авторизацию в 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)
Я пытался найти решение, узнал, что после добавления данных в сессию надо сделать редирект, но можно ли сохранить сессию без редиректа?
Источник: Stack Overflow на русском