Я использую почтовый метод для входа в систему. Моя функция ajax успешно отправляет данные на внутренний сервер колбы [я знаю, потому что она возвращает ответ на мой ajax]. Предположительно, после получения ответа от бэкэнда, мой обработчик успеха ajax будет перемещаться / перенаправлять на страницу панели мониторинга, но ЭТОГО НЕТ! Как мне сделать так, чтобы он перемещался / перенаправлял на другую страницу / URL? Он возвращает код 200 статуса, поэтому я не знаю, почему он не отображает страницу панели инструментов.
ЧТО Я ПОПРОБОВАЛ:
Я пытался использовать window.location.href, window.location.replace, но безрезультатно, но он не работает. Я также попытался изменить метод на GET, но он все тот же. Я также установил async в false, потому что ajax не будет публиковать, если я не установлю в false .
AJAX
$.ajax({
type: "POST",
url: 'http://127.0.0.1:5000/processlogin',
data: JSON.stringify(loginobject),
contentType: "application/json;charset=utf-8",
async: false,
success: function (resp) {
window.location.href = ("http://127.0.0.1:5000/dashboard");
},//success
failure: function (resp) {
alert(resp.message);
}
});
функции внутренней колбы
Эти функции работают на 100%. Уже проверил это с POSTMAN. Я также запросил базу данных, используя мою хранимую процедуру, и она хорошо работает.
Отображает форму входа
@app.route('/', methods=['GET','POST'])
def login():
return render_template('login.html')
Обрабатывает отправленные данные ajax. Короче говоря, это функция, с которой ajax связывается
@app.route('/processlogin', methods=['POST'])
def processlogin():
loginobject = request.get_json(force=True)
username = loginobject['username']
password = loginobject['password']
try:
dbpassword = callstoredproc("getpassword", (username,))[0][0]
if dbpassword == 'null':
return jsonify({'status':'error', 'message':'Username does not exist!'})
elif bcrypt.verify(password, dbpassword) == True:
return jsonify({'status':'ok'})
except Exception as e:
print(e)
И это то, что я пытаюсь отобразить: панель инструментов html
@app.route('/dashboard', methods=['GET', 'POST'])
def dashboard():
return render_template('dashboard.html')