2011-05-08 121 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