Ajax未达到'成功'用于登录表单

Ajax not reaching 'success' for login form

本文关键字:登录 表单 用于 成功 Ajax 未达到      更新时间:2023-09-26

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的警报框。另一个这样做,所以我知道它至少在调用函数。

您需要取消表单提交以避免发生

更改

onclick="validLogin()"/>

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

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

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-状态代码0?

这反过来又导致了一些事情。首先,正如espascarello所指出的,表格没有返回错误,因此它正在重新发送数据。修改后的url没有找到,这很奇怪,所以使用绝对路径解决它。

感谢大家的帮助