我開始瞭解Expressjs,Twitter Bootstrap和BackBonejs。 我已經使用命令行工具創建了基本的Expressjs應用程序,併爲登錄表單添加了一個index.html。當用戶點擊附有活動的「登錄」按鈕時,我檢索表單信息並調用「/ login」路由的ajax調用,但它不起作用。AJAX表單請求未發送到Express web服務器
這裏列出必要的文件:
謝謝你的幫助。
我開始瞭解Expressjs,Twitter Bootstrap和BackBonejs。 我已經使用命令行工具創建了基本的Expressjs應用程序,併爲登錄表單添加了一個index.html。當用戶點擊附有活動的「登錄」按鈕時,我檢索表單信息並調用「/ login」路由的ajax調用,但它不起作用。AJAX表單請求未發送到Express web服務器
這裏列出必要的文件:
謝謝你的幫助。
問題是形式還是通過重定向提交因爲這是它的默認bahavior,也沒有被指示否則。而且,由於重定向,瀏覽器正在放棄Ajax請求。
爲了防止重定向,你要綁定到<form>
的.submit()
event和使用event.preventDefault()
:
$(document).ready(function() {
$('#login-form').submit(function (e) {
e.preventDefault();
});
});
這也可能是值得使用此事件爲Ajax而不是在該.click()
<button>
儘可能多的瀏覽器允許通過其他操作,除了提交只需點擊一個按鈕type="submit"
(例如,按輸入當焦點在一個<input type="text">
):
$(document).ready(function() {
$('#login-form').submit(function (e) {
e.preventDefault();
var _login = $('#login').val(),
_password = CryptoJS.SHA512($('#password').val()),
_remember = $('input:checkbox:checked').val() ? 1 : 0;
// etc.
});
});
首先,你需要防止從按鈕的默認操作,請點擊:
$('#btn-login').click(function() {
// ...
});
// should accept the passed event and `prevenDefault`, like...
$('#btn-login').click(function (e) {
e.preventDefault();
// ...
});
謝謝你的幫助!它沒有解決我的問題,但它幫助我理解爲什麼當點擊「登錄」按鈕時重新加載頁面。我發現我的錯誤。在使用HTTPS協議的網站上包含使用HTTP協議的源代碼不是一個好主意!現在它非常棒!謝謝你們 ! – Ismael 2013-02-15 13:18:59