重定向没有重定向

时间:2014-04-26 17:15:04

标签: php html html5 redirect

此刻我面临的问题如下。我有2个链接,链接A进入商店的首页/主页,链接B进入商店内的特定页面,例如产品类别。为了使链接B正确地拉页面(空白页面),它需要访问链接A.我的猜测是,链接A设置了所述人的cookie /会话,然后允许在整个商店中旅行。

我想到的解决方案是当用户按下链接B时,调用链接A,就好像他们最初按下它而没有物理重定向到它然后重定向到链接B.

我已经阅读了其他一些有关此事的问题,但他们并没有真正回答我的困境。最接近它的是:redirect without to leave the current page

我正在用html / php开发一个网站。我没有使用上述问题中提到的术语/功能。我确实读过另一个问题,找不到它,关于cURL然而我正在运行php版本5.4.3(一张海报提到cURL包含在php 5.4.3中)。这是否意味着已经安装了cURL,或者我是否必须安装它?

编辑:我之所以提出这个问题的原因是因为商店是由我运营和管理的。情况是我是独立分销商,商店由经销商持有并经营。

1 个答案:

答案 0 :(得分:0)

您最好的希望是在自己的页面中创建一个iframe(它不必非常大,甚至可能不必显示)并将链接“A”加载到iframe中。当iframe完成加载后,您可以让用户链接“B”。假设站点“A”没有阻止自己加载到iframe中,那么应该用于建立任何站点初始化代码(如cookie)。

由于A和B都是与您自己的页面不同的域,因此您无法直接对这些页面执行任何操作。

您可以动态创建iframe并监视加载方式,如下所示:

function preloadSiteThenRedirect(linkA, linkB) {
    var iframe = document.createElement("iframe");
    iframe.onload = function() {
        window.location = linkB;
    };
    iframe.src = linkA;
    // position iframe off screen to the left
    iframe.style.position = "absolute";
    iframe.style.left = "-1000px";
    iframe.style.width = "800px";
    iframe.style.height = "800px";
    document.body.appendChild(iframe);
}

仅供参考,您也可以在完成此操作后对自己的页面进行Cookie操作,以便您知道在某个Cookie过期时间内可能无需再次执行此操作(您可以调查网站A上的Cookie过期时间) )。

仅供参考,您需要确保网站A允许自己被框架化。有些网站没有。对于不防止陷害的网站,上述逻辑似乎有效。

这是一个有效的演示:http://jsfiddle.net/jfriend00/TXTx9/


对于您页面中站点B的链接,您可以这样做(我假设您从其他一些评论中获得了jQuery):

HTML:

 <a class="directLink" href="link B">Go directly to Product B</a>

使用Javascript:

 $(".directLink").click(function(e) {
      // prevent action of the link
      e.preventDefault();
      // call the preload, then redirect function
      preloadSiteThenRedirect("URL to main page", this.href);
 });

仅供参考,您可以使用class="directLink"在页面中添加任意数量的链接,此代码将管理所有这些链接。