所以我有一个我试图通过 AJAX 提交的表单:这就是我设置它来测试我处理登录的 php 脚本的方式。
<form class="login_form" method="post" action="login_ajax.php">
Email: <input name="email" type="text" /> <br />
Password: <input name="pass" type="password" /> <br />
<input type="submit" />
</form>
这似乎有效;正确的凭证会产生良好的回报,具有“成功”属性的 json 对象,不正确的凭证会产生“失败”的 json 对象。
但是当我尝试设置脚本时,没有任何效果。
$(document).ready(function() {
$(".login_form").submit(function () {
try {
$.post("login_ajax.php", {'email':this.email.value, 'pass':this.pass.value},
function (data) {
alert("Back from AJAX");
}, 'json');
alert("Sent to AJAX");
}
catch(e) {
alert(e);
}
return false;
});
});
我没有收到任何异常,但也没有收到“返回”警报。我只是得到“发送到 AJAX”,然后什么也没有。我对传递给 jQuery.post 的回调函数有什么误解,它永远不会被调用吗?
编辑:我用下面的 .post 行替换了我的 .post 行,它工作正常,成功函数被调用,我得到了我想要的数据。我的印象是这些基本上是等价的。
$.ajax("login_ajax.php",
{'type':'POST',
'data':{'email':this.email.value, 'pass':this.pass.value},
'error':function(thingy,status,em) {alert("ERROR: "+em);},
'success':function(data, status) {alert(JSON.stringify(data));}
});