2013-07-27 117 views
0

所以這是第三次這個登錄系統工作了一整天,然後當我第二天去使用它時,它就停止工作。我沒有在這個頁面上工作,也沒有任何與它有關的文件,所以它沒有任何意義。我非常沮喪。所以這是登錄的jQuery代碼。window.location不能正常工作jquery

$('#sign_in_form').submit(function (e) { 
    var email = $('#email').val(); 
    var password = $('#password').val(); 

    $.post('sign_in.php', { email: email, password: password }) 
    .done(function(data) { 
     if(data == 'FSI') { 
      window.location = 'accounts.php'; 
     } else { 
      $('#errors').text(data); 
     } 
    }) 
    .fail(function(jqXHR, status, error) { 
     $('#errors').text(error); 
    }); 
    e.preventDefault(); 
}); 

現在#errors是一個div,您可以在上面輸入您的電子郵件和密碼。如果你輸入了錯誤的信息,它會告訴你php文件有多個響應。那麼如果你輸入了正確的信息,FSI就會返回並且你被導向到賬戶頁面,如圖所示。那麼現在在#errors div中有一條消息說'FSI'。我很困惑,如果數據=='FSI'那麼它應該是指導用戶accounts.php不應該? 這很愚蠢,這段代碼太簡單了,應該永遠不會失敗。前天它工作,然後昨天停止,我不得不輸入e.preventDefault();。現在它是新的東西,我覺得明天它可能是別的東西。精益,任何幫助表示讚賞,對於憤怒抱歉。

+0

確保沒有前導/尾隨空格字符。試試'if($ .trim(data)=='FSI'){...'。還可以試一下'console.log(data.length)' –

+0

@CrazyTrain好主意,謝謝。我會在第二次更新 –

+0

@丁傑丁丁丁,你先生是一個正確答案的驕傲贏家。請張貼它,我會盡快接受。感謝您的時間和我的壓力緩解。 –

回答

4

白色空間可以在這裏殺死你。確保沒有前導/尾隨空格字符。嘗試

if ($.trim(data) == 'FSI') {...} 

也可以嘗試

console.log(data.length) 
+0

之前將'window.console && console.log(data)'添加到您的代碼中,您應該編輯它並將其放入代碼塊 –

+0

這是一個社區wiki,如果您願意,可以隨時進行改進。 –

+0

很酷,謝謝 –