我需要检索用户在浏览器中看到的实际网址。我在页面加载时运行Ajax请求。因此,常规$_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]
表达式返回Ajax请求的请求URL,而不是浏览器中的实际URL。
知道如何获得这个吗?
答案 0 :(得分:5)
您可以使用window.location.href
在您的ajax请求中通过javascript传递它。
此外,$_SERVER['HTTP_REFERER']
可能包含浏览器的当前位置。
答案 1 :(得分:2)
您也可以尝试使用$_SERVER['HTTP_REFERER'];
。这可能有效,但不是100%肯定。
答案 2 :(得分:2)
您无法使用服务器端代码执行此操作,因为没有服务器端变量引用客户端看到的内容。您可以看到的唯一的东西(然后再次,它取决于用户使用的浏览器,有些不传递此信息)是HTTP_REFERRER变量。但是,这仅在页面调用另一个页面时设置,而不是在用户首次访问您的站点时设置。
有关详细信息,请参阅this。
然而,一个可能的解决方案可能是使用javascript函数使用AJAX查询将浏览器的顶级URL发送到服务器,并在用户加载页面时在客户端激活它以获取此信息。
编辑:该死的,太慢了,已经回答了!
答案 3 :(得分:1)
传递一个隐藏的输入,该输入具有使用ajax请求设置的浏览器值。除非某人是恶意的,否则就足够了。
答案 4 :(得分:1)
如果您执行Ajax请求,则可以通过Javascripts window.location.href
变量将可用的地址作为POST变量传递给请求。
使用jQuery,它将类似于:
$.ajax({
url: 'your-url.php',
type: "POST",
data: { url: window.location.href },
success: function (data) {
// Do something on success
}
});
有了这样的请求,您可以通过简单的方式访问服务器端的URL:
<?php
$url = $_POST["url"];
?>
答案 5 :(得分:1)
php中的实际网站链接
<?php
echo $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
?>
答案 6 :(得分:0)
服务器端语言无法看到在呈现并输出页面后会发生什么。