执行链接,然后再次重定向


Execute link then redirect again

我有一个mybb板,在那里我提供了一个特定的链接,看起来像这个

<a href="/member.php?action=login&do=switch">Klick</a>

链接会更改会话并重新加载页面,所以我需要在会话中执行它来进行更改。然而,之后我想将用户重定向到另一个页面,如"/private.php"

我已经尝试过将href和onclick组合在一起的不同版本,但它总是将我带到href中所述的页面,忽略onclick部分。所以我的代码看起来有点像这样:

<a href='/member.php?action=login&amp;do=switch&amp;uid={$others['uid']}' onclick='window.location.href({$mybb->settings['bburl']}/private.php);'>Link</a>";

我必须说,当涉及到javascript时,我几乎是一个傻瓜,所以我需要一些帮助。我想用javascript或php来解决这个问题,所以请不要使用元标记。

您有两个选项:

  • /member.php?action=login&do=switch中,向private.php返回重定向响应(http 301),浏览器收到响应后会自动重定向
  • 使用ajax调用链接/member.php?action=login&do=switch,在ajax的回调中,使用window.location.href = private.php重定向到private.php

使用jquery的示例代码:

$("a").click(function(){
  var href = $(this).attr("href"); //href here is "/member.php?action=login&do=switch"
  $.ajax(
  {
     url:href,
     ...
  }).done(function(){
   window.location.href = "private.php"
  });
  return false; //prevent default action of links.
});