我的表單中有一個按鈕(不是提交),它觸發了AJAX調用。我希望頁面在之後重新加載並反映新的狀態(由AJAX調用修改)。 AJAX調用工作正常,除非我嘗試在success:
回調函數的末尾添加重定向。當重定向在回調中工作時,頁面重定向並且AJAX調用不起作用。如何在成功回調函數提交AJAX表單後重定向
看起來重定向是「中斷」AJAX調用,而不是讓它發生,但這讓我感到困惑。我認爲回調只發生在撥打電話後發生。那麼回調函數中的事情怎麼會干擾本應該發生的事情呢?
下面是一些HTML:
<a href="http://example.dev/my-file-delete" id="deleteresume">Delete file</a>
這裏是我的javascript:
var deleteresume = function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "<?php echo $link_to_delete; ?>",
success: hideresumefile(event.target)
});
}
$("#deleteresume").click(deleteresume);
var hideresumefile = function(target) {
$(target).closest('div').css('display', 'none');
//THIS IS THE PROBLEM...
$(location).attr('href', 'http://example.dev/handler.php');
}
我試過重定向的許多變化,例如:
window.location.replace("url");
window.location.href = "url";
location.reload(true);
window.location.reload(true);
location.href('url');
window.location.href('url');
當這些工作AJAX呼叫不是。我錯過了什麼?
將用戶重定向到另一個頁面上的ajax回調函數,使得使用ajax開始的目的失敗。 – 2013-03-06 21:44:16
這取決於爲什麼使用AJAX的目的。我這樣做的理由與這個問題無關,但並不是要避免重新加載頁面。 – emersonthis 2013-03-06 21:46:25