1
按下登錄按鈕後,它會將整個error.html文件打印到Web控制檯,而不是重定向到userhome.html,哪位出錯了,歡呼!代碼一切都低於...驗證用戶登錄
的Python:
@app.route('/ValidateLogin',methods=['POST'])
def ValidateLogin():
try:
_username = request.form['username']
_password = request.form['password']
#connection to MySQL
cur = mysql.connection.cursor()
cur.callproc('sp_validateLogin', (_username,))
data = cur.fetchall()
if len(data) > 0:
if check_password_hash(str(data[0][3]), _password):
session['user'] = data[0][0]
return redirect('/UserHome')
else:
return render_template('error.html', error = 'Wrong Email Address or Password')
else:
return render_template('error.html', error = "Invalid Email Address or Password")
except Exception as e:
return render_template('error.html', error = str(e))
finally:
cur.close()
JS:
$(function() {
$('#btnSignIn').click(function() {
$.ajax({
url: '/ValidateLogin',
data: $('form').serialize(),
type: 'POST',
success: function(response) {
console.log(response);
},
error: function(error) {
console.log(error);
}
});
});
});
感謝您的答案,但我找出了爲什麼它不工作的原因。密碼被散列,然後變量大小太小而無法在數據庫中保存散列密碼,導致它始終顯示錯誤頁面! – Yatestom
@Yatestom:真的嗎?這不是你最初描述的問題,但我注意到你已經更新了你的問題。無論您是否仍然遇到上面描述的$ .ajax()重定向問題,瀏覽器都不會重定向到所需的頁面。你修改你的JavaScript來處理它嗎? – mhawke