【问题标题】:wait to leave page until ajax is done等待离开页面,直到 ajax 完成
【发布时间】:2023-03-08 03:29:02
【问题描述】:

基本上,我会在单击元素时发送$.POST()。此元素将用户带到不同的页面,并且 POST 请求不会一直通过。但是,如果我慢慢地通过它,脚本就会运行。

如何让页面等到脚本运行后再导航离开页面?还是这里有不同的问题?对 AJAX 有点陌生

$('.ad-link').on('click', function() {
    $.get('http://easyuniv.com/php/clickPP.php?id='+$(this).attr('id'));
});

然后 clickPP.php 只是一个简单的 SQL 查询,我已经验证它可以工作。

谢谢

【问题讨论】:

标签: php javascript jquery ajax


【解决方案1】:

您可以为此使用回调,如下所示:

$('.ad-link').on('click', function(e) {
    e.preventDefault();
    var url_to_redirect = $(this).attr('href');
    $.get(
        'http://easyuniv.com/php/clickPP.php?id='+$(this).attr('id'),
        {},
        function(return_data){  // callback function, wait till request is finished
            // use the return_data if you need it
            location.href = url_to_redirect; // redirect the user
        }
    );
});

【讨论】:

  • 回调函数里面一定要有东西吗?我用空的回调函数试了一下,和之前做的一样。
  • 不,没必要。我只是在此处添加它以说明您可以做某事,如果您愿意
  • 嗯,只有当我在控制台中单步执行时,仍然有效,但如果我只是单击链接,则不会
  • 我现在添加了e.preventDefault()。这应该会阻止链接到达某个地方,直到您要求它在回调中离开
猜你喜欢
  • 2011-03-09
  • 2014-12-01
  • 2016-07-03
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多