javascript - AJAX 调用不起作用,因为它继续转到链接

标签 javascript jquery ajax

我有一个从数据库动态生成的 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/

相关文章:

javascript - 通过脚本标签加载 JSON 文件

javascript - 如何使用 JavaScript 用一个 if 检查数组中的多个元素?

Jquery:如何让菜单向右而不是向左扩展

javascript - 将 Javascript 对象发送到 Rails Controller

html - Ajax.ActionLink 在表头后插入?

javascript - 如何使用 Javascript 获取多个选定项的列表并将它们的值输出为数组

javascript - 如何使用 Google Maps Javascript V3 API 从 google map 中删除 MapType?

javascript - 想知道是否有可用于 xml 的 .html() 等价物?

javascript - AJAX/Javascript 检索数据

javascript - 在 JQuery 中将 rel 属性更改为 data-rel 以使用 HTML5