延迟链接重定向

时间:2014-08-01 14:19:13

标签: php jquery

我的网站上有一些外部链接,当点击其中一个链接时,我也使用jQuery ajax将变量设置为session,这样当用户从另一个站点返回时,该变量可用。但有时候,似乎重定向发生得太快而且没有设置会话。是否有延迟将用户发送到另一个站点,可能是通过弹出模式?

以下是我目前的工作方式:

$(".myLink").click(function() {
    var soc = $(this).attr("id");
    $.ajax({
        type: "POST",
        url:  "/myAjax.php",
        data: {
            "action" : "sent",
            "social" : soc
        },
        dataType : "json"
    });
});

1 个答案:

答案 0 :(得分:2)

我认为你需要禁用链接的默认值,将数据发送到php脚本以保存会话var,一旦完成,就转发用户。这样的事情(未经测试):

    $('a.blank').click(function(e){
        e.prevendDefault();
        $.post( "session.php", { 
            url: $(this).attr('href'), 
            id: $(this).attr('id') 
        })
        .done(function( data ) {
            window.open(this.href);
        });
    });

注意,您需要检查失败并添加默认行为,这样如果php脚本由于某种原因失败,用户仍然会被定向到给定的URL。