永远不会达到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> </label>
<input type="submit" name="loginButton" id="loginButton" value="Login!" onclick="validLogin()"/>
</div>
<div id="statusLogin"></div>
</form>
在beforeSend中,不会生成带有xml的警告框。另一个这样做我知道它至少调用了函数。
答案 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);
}
});
我们能够获得一个错误代码,然后导致
然后又导致了一些事情。首先,espascarello指出表单没有返回false,因此重新发送数据。 修改后的网址没有被发现是奇怪的,因此使用绝对路径来解决它。
谢谢大家的帮助