【问题标题】:Send AJAX on click, but still go to URL of href单击时发送 AJAX,但仍转到 href 的 URL
【发布时间】:2019-08-30 01:06:17
【问题描述】:

我正在尝试以下操作:

当用户单击链接时,我想通过 ajax 更新数据库中特定表的特定列。但我仍然希望将用户重定向到链接的href="<url>"

我在没有return false; 的情况下尝试了 jQuery,但是 ajax 不起作用。

我尝试使用return false;,但页面显然没有按照我的意愿重定向到该网址。

提前感谢您的帮助。

【问题讨论】:

标签: php jquery ajax


【解决方案1】:

进行 AJAX 调用,完成后设置 document.location

$('a').click(function(e){
    var href = this.href;  // get href from link
    e.preventDefault();  // don't follow the link
    $.ajax({
        url: '/path/to/site',
        data: {some: data},
        success: function(){
            document.location = href;  // redirect browser to link
        }
    });
});

【讨论】:

  • window.location = href;会更好。保留历史记录,我认为 document.location 仅用于 gecko (firefox) 浏览器上的重定向。 (不确定这个)
【解决方案2】:

您需要自己序列化这些操作。在事件处理程序中,首先运行您的 AJAX 请求,然后从标记中查找 href 并使用位置重定向将客户端带到该 URL。

【讨论】:

    【解决方案3】:

    将重定向代码放入成功回调中:

    $.ajax({
      ...
      success: function(){
        $(location).attr('href',url); // You URL inserted
      }
    });
    

    【讨论】:

    • 我以前从未见过$(location).attr('href',url);。似乎工作,但我更喜欢document.location = url;。它不需要调用 jQuery 的开销。
    • @Rocket True。有可能,但您的答案可能更简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多