Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可能通过JavaScript检测到页面被重定向到?_Javascript_Redirect_Http Headers - Fatal编程技术网

是否可能通过JavaScript检测到页面被重定向到?

是否可能通过JavaScript检测到页面被重定向到?,javascript,redirect,http-headers,Javascript,Redirect,Http Headers,在服务器端,有没有一种方法可以检测到给定的页面/脚本已通过JavaScript重定向到 例如,假设我有page.php,它使用location.href='tracker.php'而不是。tracker.php有没有办法区分前一种基于JavaScript的重定向和服务器端301重定向?您可以向tracker.php传递一个参数,该参数可以用来判断它是否来自JavaScript Javascript: location.href = 'tracker.php?redirect=1'; track

在服务器端,有没有一种方法可以检测到给定的页面/脚本已通过JavaScript重定向到


例如,假设我有page.php,它使用
location.href='tracker.php'而不是
。tracker.php有没有办法区分前一种基于JavaScript的重定向和服务器端301重定向?

您可以向tracker.php传递一个参数,该参数可以用来判断它是否来自JavaScript

Javascript:

location.href = 'tracker.php?redirect=1';
tracker.php

<?php 
    if(isset($_GET["redirect"])){
        //if we're here, we know it was redirected
    }
?>

重定向基本上只是另一个HTTP GET,您无法看到它是如何触发的。我能看到的唯一方法是手动传递一个参数或发送一个HTTP头来标记JavaScript触发的重定向。

我不这么认为,因为你不能信任头。。。你可以推断,但它可能不可靠,所以我很好奇,因为我曾经是一个广告分支,我错误地实现了一个JavaScript重定向到一个商家网站,而不是让点击事件触发重定向(我在做一个event.preventDefault(),做一些跟踪,然后做另一个重定向),联盟网络禁止了我。我不知道他们是怎么知道这是怎么发生的。这很有趣,AFAIK-我可能在这里遗漏了一些东西-单击该链接并设置location.href应该是等效的,除非单击时发生了其他事情,会以某种方式标记该事件。啊!我只记得…他们检测到重定向是人为的,而不是(希望)通过点击链接。所以我在这个帖子里问了一个错误的问题。不过,我想知道是否有可能在不添加任何指示标志的情况下检测出它来自何处。