jQuery .ajax请求没有任何效果

时间:2011-05-08 23:11:30

标签: jquery ajax json

我正在尝试创建一个jquery登录系统,但是当我提交表单时,动画gif会出现,但没有别的。

以下是代码:

$(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)
}

1 个答案:

答案 0 :(得分:3)

您的请求无法处理错误结果,因此如果请求失败(例如无法找到服务器,或者更有可能是响应是500服务器错误),则不会发生任何事情。

您可以使用error函数添加错误处理程序,例如:

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

或者(或另外),您可以使用complete函数来指定在请求结束时应该发生的操作,无论是成功还是失败结果。

有关详细信息,请参阅documentation