我有一个从数据库动态生成的 PDF
链接列表。我想要一个日志来跟踪下载每个文件的用户。
它似乎不起作用,因为单击链接后,它没有时间在重定向之前执行ajax
。
这是 JavaScript:
function insertlog(linkName)
{
$.post( "insertlog.php", { linkName: linkName, user: "<?=$username?>" } );
}
这是链接:
<a href="http://www.test.com/media/pdf/test.pdf" onclick="insertlog('test.pdf')">test.pdf</a>
最佳答案
试试这个:
<script>
function logAndGo(target)
{
$.post( "insertlog.php", { linkName: target, user: "<?=$username?>" } )
.then(function(url) {
window.location = url;
});
}
</script>
让服务器返回正确的 URL 作为对日志 POST 的响应。然后将链接更改为:
<a href="#" onclick="insertlog('test.pdf')">test.pdf</a>
一个更好的选择是 @dave 提出的:创建一个处理重定向的服务器端页面,这样你就可以执行如下操作:
<a href="getFile.php?id=1234">test.pdf</a>
通过在服务器端处理它,您可以更多地控制日志记录、重定向到哪个 URL 等。
关于javascript - AJAX 调用不起作用,因为它继续转到链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545663/