2012-02-19 52 views
0

我試圖弄清楚如何從我的$ .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); 
     }); 
    }); 
}); 
+3

你在Firebug中看到什麼? – SLaks 2012-02-19 19:20:49

+0

您可以在控制檯管理器中按f12輕鬆地在Chrome中調試腳本,並在網絡選項卡中查看請求和響應正在通過。 – 2012-02-19 19:22:43

+0

@ jurka - 做了你說的,它很快閃爍'錯誤與AJAX功能:錯誤' – Mike 2012-02-19 19:25:21

回答

1

我想,既然你沒有指定一個form action並不會阻止的形式從提交由恢復false事件處理程序,在執行AJAX回調之前頁面正在刷新(您發佈到同一頁面並且只是重新加載)。這並不能解釋錯誤信息。

+1

您不應該使用'return false'作爲防止默認事件觸發的方式,而是使用'event.preventDefault()'函數,如'function callback_function(e){e.preventDefault();}'中所示。 – wecsam 2012-02-19 19:40:58

+0

TheShellfishMeme ....你是男人(或女人,哈哈)。只需在事件處理程序中加入'return false;'就可以解決我的問題。沒有嘗試添加「行動」,但不是更少,它的作品。非常感謝你:) – Mike 2012-02-19 19:42:49

+0

@wecsam - 我會嘗試你的選擇。在你的頭頂上,是否有一些更詳細的說明你的意見? – Mike 2012-02-19 19:44:41