我正试图弄清楚如何从我的$.post()中获得响应,但我似乎无法弄清楚。它在IE中运行得很好,但在FF和Chrome中会阻塞。我相信这真的很简单。我在这里和谷歌上读了很多帖子,尝试了所有的建议,但仍然没有运气。有人能看出我做错了什么吗?我期望的响应是testing
。
忘记把我得到的包括在内;在Chrome和FF Firebug控制台中,我看到.error()
消息,它只有"错误"。。。没有描述。
图书馆
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
HTML
<form id="frm">
<input type="text" name="usr" />
<input type="submit" value="Click" />
</form>
JQuery
$(function()
{
$('form#frm').submit(function()
{
$.post('process.php',$('#frm').serialize(),function(response)
{
console.log('PHP returned : '+response);
})
.error(function(XMLHttpRequest,textStatus,errorThrown)
{
console.log('Error with ajax Function: '+ textStatus+' '+errorThrown);
});
});
});
PHP
<?php
print('testing');
?>
编辑(对于其他有相同问题的人,此代码有效)
$(function()
{
$('form#frm').submit(function(e)
{
e.preventDefault();
$.post('process.php',$('#frm').serialize(),function(response)
{
/* Do something with response */
})
.error(function(XMLHttpRequest,textStatus,errorThrown)
{
alert('Error with ajax Function: '+ textStatus+' '+errorThrown);
});
});
});
我认为,由于您没有指定form action
,也没有通过在事件处理程序中返回false
来阻止表单提交,因此在执行AJAX回调之前,页面正在刷新(您发布到同一页面,它只是重新加载)。但这并不能解释错误信息。