我正在试图弄清楚如何从我的$ .post()中获得回复,而我似乎无法弄明白。它在IE中运行得很好,但在FF和Chrome中窒息。我相信这很简单。我已经阅读了很多帖子,并在Google上尝试了所有的建议,但仍然没有运气。有人能看出我做错了吗?我应该期待的回答是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);
});
});
});
答案 0 :(得分:1)
我认为,既然您没有指定form action
并且不通过在事件处理程序中返回false
来阻止表单提交,则页面正在刷新(您发布到同一页面)在执行AJAX回调之前,它只是重新加载页面。但这并不能解释错误信息。