Ajax没有达到登录表单的“成功”

时间:2013-07-19 13:24:29

标签: php javascript jquery html ajax

永远不会达到ajax功能的成功部分。我花了好几个小时,仍然没有成功。几乎所有必要的代码都被剥夺了,只是为了尝试去除任何可能出现的问题,但它仍然无效。

下面是我试图开始工作的剥离代码。谢谢你的帮助。

的Ajax:

function validLogin(){

    var url = "loginProcessAjax.php";

    $.ajax({
        type: 'POST',
        url: url,

        beforeSend: function() {
            //
            alert("sdfs");
        },

        success: function(html) {

            alert("success");
            alert(html.getElementsByTagName("worked")[0].firstChild.nodeValue);
        },

        error: function( error ) {
            console.log(error);
        }
    });
}

PHP:

 <?php
 header("Content-type: text/xml");
 echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
 echo "<worked>";
 echo "success";
 echo "</worked>";
 ?>

HTML:

<form method="post" action="" id="ourLoginFormID_JS">
                    <div class="ourContactFormElement2">
                        <label for="username">Username:</label>
                        <input type="text" id="username"  name="username" autocomplete="off" class="required" value="<?php if(isset($_POST['username'])) echo htmlentities($_POST['username']); ?>"  />
                    </div>

                    <div class="ourContactFormElement2">
                        <label for="password">Password:</label>
                        <input type="password" id="password" name="password" autocomplete="off" class="required"/>
                    </div>

                    <div class="ourContactFormElement2">
                        <label> &nbsp; </label>
                        <input type="submit" name="loginButton" id="loginButton" value="Login!" onclick="validLogin()"/>
                    </div>

                    <div id="statusLogin"></div>
                </form>

在beforeSend中,不会生成带有xml的警告框。另一个这样做我知道它至少调用了函数。

2 个答案:

答案 0 :(得分:0)

您需要取消正在发生的表单提交

变化

onclick="validLogin()"/>

onclick="validLogin(); return false;"/>

最好在表单上使用onsubmit而不是按钮上的点击事件。不使用内联事件处理程序会更好。

答案 1 :(得分:0)

Spokey在聊天中解决了这个问题。图例

by using $.ajax({
    type: 'POST',
    url: 'loginProcessAjax.php',
    beforeSend: function() {
        alert("sent");
    },
    success: function(html) {
        alert(html) 
    },
    error: function( x, status, error ) {
        alert(x.status + status + error);
    }
});

我们能够获得一个错误代码,然后导致

jQuery Ajax - Status Code 0?

然后又导致了一些事情。首先,espascarello指出表单没有返回false,因此重新发送数据。 修改后的网址没有被发现是奇怪的,因此使用绝对路径来解决它。

谢谢大家的帮助