我的表单中有一个按钮(不是提交),它触发了 AJAX 调用。我希望页面之后重新加载并反映新状态(由 AJAX 调用修改)。success:
AJAX 调用工作正常,除非我尝试在回调函数的末尾添加重定向。当重定向在回调中工作时,页面重定向并且 AJAX 调用没有效果。
似乎重定向正在“中断” AJAX 调用而不是让它发生,但这让我感到困惑。我认为success:
回调仅在拨打电话后发生。那么回调函数中的事情怎么会干扰应该已经发生的事情呢?
这是一些 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 调用不起作用。我错过了什么?