簡體   English   中英

點擊文件下載后,成功使用AJAX重定向到另一個頁面

[英]On click file download, on success redirect to another page using AJAX

在我的WordPress項目中,我的“ 下載”按鈕包含一個.zip文件,應下載onClick。 因此,HTML產生為:

<a id="732" class="btn btn-default download-link" href="https://example.com/download.zip">DOWNLOAD</a>

我正在使用AJAX刷新下載計數。

<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
jQuery(document).on('click', '.download-link', function () {
    var id = this.id;

    jQuery.ajax({
        type: 'POST',
        url: ajaxurl,
        data: {"action": "count_download",
                    "id": id
                },
        success: function (data) {
            window.location = site.url + "/download-success?fid="+ id;
        }
    });
});
</script>

一切正常,直到我添加了帶有鏈接的文件。 通常,這樣的鏈接將開始下載.zip文件,但是即使在AJAX調用花費的時間之后,該頁面仍會重定向到下載成功頁面,而不會觸發下載。

而且它通常發生在大多數時間,只有一次或兩次文件開始下載。

PS:我測試這個 ,但它不是我的情況。

嘗試這個,

將帶您到另一個頁面

success: function (data) {
    window.location.href = site.url + "/download-success?fid="+ id;
}

將帶您到新窗口中的另一個頁面

success: function (data) {
    window.open('site.url + "/download-success?fid="+ id');
}

同意@marc。 只是要添加更多信息,請執行此操作。

<a href='download.php?file=some_file.zip'>Download</a>

上面可以是要下載的url鏈接,下面是download.php中的php代碼

//code to update download count (UPDATE tbl_dwn SET total = total + 1)
//below is code to download (hope you know it)
$zipName = $_GET['file']; //here you've to specify the absolute path to the download.zip file
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=".$zipName."");
header("Content-length: " . filesize($zipName));
header("Pragma: no-cache"); 
header("Expires: 0");
readfile($zipName);

試試這個,讓我知道您是否有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM