フォーム(送信ではない)にAJAX呼び出しをトリガーするボタンがあります。後でページをリロードして、新しい状態を反映させたい(AJAX呼び出しによって変更された)。コールバック関数の最後にリダイレクトを追加しようとしない限り、AJAX呼び出しは正常に機能しsuccess:
ます。コールバックでリダイレクトが機能している場合、ページはリダイレクトされ、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呼び出しは機能しません。私は何が欠けていますか?