0

按下按钮后,我收到以下警告并且表单重复。代码中有错误吗?

http://divran.com/s/upload/images/fso5xclhcdpbwamj153s.gif

           <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=windows-1254" />
            <script src="jquery-ui-1.10.0.custom/jquery-1.9.1.min.js" type="text/javascript"></script>
            <title>jquery AJAX</title>
            <script language="javascript">
                $(document).ready(function(){
                            var name    = $("#name").val();
                            var sname   = $("#sname").val();
                            var email   = $("#email").val();

                        $("#b1").click(function(){          
                            $.ajax({
                                type    :"POST",
                                URL     :"save.php",
                                data    :"name="+name+"&sname="+sname+"&email="+email,
                                dataType:"text",
                                success :function (data, textStatus, jqXHR) {                           
                                            if (data == 'success'){
                                                $("#res").html("sonuc :"+data); 
                                            }else{
                                                $("#res").html(data +":"+textStatus+":"+jqXHR);
                                                }
                                }
                            });             
                        }); 
                    });

            </script>
            </head>
            <body>
            <input type="text" id="name"/><br />
            <input type="text" id="sname"/><br />
            <input type="text" id="email"/><br />
            <button id="b1">send</button>
            <div id="res"></div>
            </body>
            </html>
4

1 回答 1

0

它正在做它应该做的事情。错误在这部分:

success :function (data, textStatus, jqXHR) {                           
    if (data == 'success'){
        $("#res").html("sonuc :"+data); 
    }else{
        $("#res").html(data +":"+textStatus+":"+jqXHR);
    }
}

只要 AJAX 调用成功,就会触发此回调,但随后您检查data键是否等于success,它不是,因此现在触发 else 子句(如您的屏幕截图所示)。我相信您实际上要检查的是是否textStatus成功。所以,替换:

if (data == 'success'){

有了这个:

if (textStatus == 'success') {

结果,您应该得到一个sonuc :跟随的数据。

请注意,尽管整个 if/else 实际上没有用,因为这已经success是仅在 AJAX 请求成功时才返回的回调。你可能想把这个:

$("#res").html(data +":"+textStatus+":"+jqXHR);

进入错误回调,所以你会得到:

success: function (data, textStatus, jqXHR) {                           
    $("#res").html("sonuc :"+data); 
},
error: function (jqXHR, textStatus, errorThrown) {
    $("#res").html(data +":"+textStatus+":"+jqXHR);
}
于 2013-02-13T14:49:51.287 回答