2011-05-08 120 views
1

我試圖做一個jQuery的登錄系統,但是當我提交表單時,GIF動畫出現,但沒有別的。jQuery .ajax請求沒有任何影響

下面是代碼:

$(function(){ 
    // Quand le formulaire est envoyé 
    $('#submit').click(function() { 
     // Fade out 
     var html = '<div id="head">Connexion en cours...</div>'+ 
      '<div style="width:100%; text-align: center; margin-top:80px;"><span id="status">Prise de contact avec le serveur</span><span id="img"><br><img src="../img/loaders/bar_blue.gif"></span></div>'; 
     replaceandfade('#center',html, 10); 
       $('#user').attr("disabled", true); 
       $('#pswd').attr("disabled", true); 
       var user = $('#user').val(); 
       var pswd = $('#pswd').val(); 
       // On envoie les infos de connexion 
       $.ajax({ 
        type: "POST", 
        url: "ajax_login.php", 
        data: "user=bob&pswd=bob", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(data) { 
         $("#status").html("En attente de la réponse"); 
         alert(data); 
         if(data.login == "failed"){ 
          $("#img").html(''); 
          $("#status").html("Le nom d'utilisateur ou le mot de passe saisie est invalide"); 
         } else if(data.login == "success"){ 
          $("#status").html("Connexion aprouvé, un instant..."); 
         } else { 
          $("#status").html("Une erreur est survenu."); 
         }; 
        } 
       }); 
    });// END OF #submit.click 
}) // END OF onload 

的ajax_login.php頁面回報:{"login":"failed"}

但現在它沒有做任何事情。

replaceandfade功能

function replaceandfade(div, content, sec) { 
    setTimeout(function() { 
     $(div).fadeOut("fast", function() { 
      $(div).html(content); 
      $(div).fadeIn("fast", function() {}); 
     }); 
    }, sec) 
} 
+0

是被調用的警報?服務器的回覆是什麼? – tster 2011-05-08 23:14:26

回答

3

你的請求不處理錯誤的結果,所以如果請求失敗(例如服務器無法找到,或者更可能的響應是500服務器錯誤) ,那麼什麼都不會發生。

可以使用error功能添加一個錯誤處理程序,例如:

$.ajax({ 
    // Other parameters 
    success: function(data) { 
     alert(data); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     alert("Request failed"); 
    } 
}); 

或者(或另外),您可以使用complete功能來指定請求結束時應該發生的行動,無論是成功或失敗的結果。

查看documentation瞭解更多信息。

+0

哎唷!我認爲'data:「user = bob&pswd = bob」'正在向URL發送值,我用'url:「ajax_login.php?user =」+ user +「&pswd =」+ pswd'解決了問題。 ajax請求。謝謝你的錯誤處理程序:) – 2011-05-08 23:33:32