我有以下代码在onbeforeunload事件上调用count_visit.php。这很好用。但是,当我使用$ _SERVER ['REQUEST_URI']时,结果是count_visit.php而不是真实的URL。
<script type="text/javascript">
var startime = (new Date()).getTime();
window.onbeforeunload = record_visit;
function record_visit() {
var x = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
x.open("GET", "count_visit.php?t=" + (((new Date()).getTime() - startime) / 1000), false);
x.send(null)
}
即使使用上面的代码,有没有更好的方法来获取当前的URL?或者我需要更改上面的代码?
答案 0 :(得分:1)
我怀疑你想要包含AJAX的页面的URI,而不是AJAX调用本身 - 但是count_visit.php
是正确的$ SERVER ['REQUEST_URI'],因为这是你的AJAX调用的URI脚本。
要获取您需要使用window.location.href
的页面URI,请将其转义并将其作为参数发送给您的AJAX调用,例如
x.open("GET", "count_visit.php?t=" + (((new Date()).getTime() - startime) / 1000)+"&url="+escape(window.location.href), false);
在PHP中,您必须记录$_GET['url']
答案 1 :(得分:-1)
如果要检索完整URI,可以采用以下两种方式: 首先,由于这不是跨域通信,您可以连接两个服务器变量
$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
第二种方式,您可以更改上面的代码,并将完整的页面URI作为GET请求的附加变量发送到服务器。