2012-07-17 60 views
0

瓶響應不觸發Ajax回調

$.post("/login", {}, function(data){ 
    alert("yolo"); 
}); 

這是通過一個按鈕點擊其中「/登錄」地圖觸發到我的服務器(使用瓶裝):

@route('/login', method='POST') 
def login(): 
    return "something" 

我面臨的問題是,我的回調從來沒有被調用,我反過來回到我的身體的「東西」的HTML頁面。

如何讓我的瀏覽器將我的服務器響應視爲數據而不是新的html頁面?

+0

它不應該這樣做,無論如何,你不應該得到重定向。 '$ .post'如何被觸發?我們可以看到周圍的JS和HTML嗎? – Fresheyeball 2012-07-17 03:03:47

回答

1

我懷疑你正在觸發你的$.post類似.click<form>標籤內的提交按鈕。如果是這種情況,那麼您的表單將執行標準提交併由您的服務器重定向到相關操作。爲了防止這種情況發生(並允許發生ajax),您需要防止瀏覽器默認表單提交行爲。這可以很容易地做到這一點:

$('#IDofYourForm').submit(function(e){ e.preventDefault(); }); 
+0

是的,我確實在表單標籤中有帖子,我相信我的一些測試可能因瀏覽器緩存而失效。感謝Fresheyeball! – lunaleaps 2012-07-22 21:55:07