2015-06-09 48 views
2

我做了一個jQuery ajax POST成功地將正確的數據傳遞到服務器。 POST完成後,瀏覽器已重定向到發佈網址頁面......我不想要。這兩種警報都不會發生。 POST數據已經到達服務器了。成功ajax後不必要的重定向到POST網址

即在如下所示在http://myDomain/myPage.html的頁面內執行ajax之後,瀏覽器地址欄顯示http://myDomain:39991/updateEnabled並且沒有警報發生。

var enabledAjax = $.ajax({ 
     url: 'http://myDomain:39991/updateEnabled', 
     method: 'POST', 
     data: $('#enabledForm').serialize(), 
     dataType: 'jsonp' 
    }); 
    enabledAjax.done(function (msg) { 
     alert('done') 
    }) 
    enabledStatus.fail(function (jqXHR, textStatus) { 
     alert('textStatus'); 
    }) 

在快遞,我有router.post('/updateEnabled', urlEncodedParser, updEnab);

在updEnab所有我此刻要做的就是req.body的的console.log和res.end()

我已經試過內的「成功」的方法阿賈克斯params但這也行不通。 我在做什麼錯誤導致重定向到POST URL?

+0

使用'event.preventDefault()'或'返回false;'停止重定向 – Tushar

+0

你如何觸發你的代碼?從id#enabledForm中,我認爲你最有可能點擊表單中的按鈕,這會觸發表單的動作。 – Jack

回答

1

你好,當你提交表單這是通常提交,所以你需要使用這個。

event.preventDefault() 

這將停止正常提交表單。

+1

我upvoted這個答案,因爲它導致我http://stackoverflow.com/questions/20352799/ajax-form-submit-with-preventdefaultusing我在哪裏找出事件來自哪裏。它停止不需要的重定向,但現在ajax失敗了,我會發佈一個新的問題,更新後的代碼不會重定向,但也不起作用:-) – RoyHB

+0

好的:-)如果這個答案有幫助,那麼接受它。 – Aabid

1

要停止你可以使用這樣return語句重定向:

enabledAjax.done(function (msg) { 
    return false; 
})