我的网站上有一些外部链接,当点击其中一个链接时,我也使用jQuery ajax将变量设置为session,这样当用户从另一个站点返回时,该变量可用。但有时候,似乎重定向发生得太快而且没有设置会话。是否有延迟将用户发送到另一个站点,可能是通过弹出模式?
以下是我目前的工作方式:
$(".myLink").click(function() {
var soc = $(this).attr("id");
$.ajax({
type: "POST",
url: "/myAjax.php",
data: {
"action" : "sent",
"social" : soc
},
dataType : "json"
});
});
答案 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。