请问下 php 怎么获取 ajax 请求 来源页面的 完整 url 地址啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问下 php 怎么获取 ajax 请求 来源页面的 完整 url 地址啊?相关的知识,希望对你有一定的参考价值。
比如 我从网站首页或某个文章页面
点击onclick 用jquery的ajax方法发送一个请求 给 getuserinfo_ajax.php
怎么才能在getuserinfo_ajax.php 文件中获取到 请求来源,即网站首页 或其他来源页的完整地址啊??
$_SERVER['HTTP_REFERER'] //可以得到上一页的地址
$_SERVER[PHP_SELF] //得到当前页面地址
$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"] //这个可以得到带参数的地址 参考技术A $_SERVER['HTTP_REFERER'] //这个参数可以完全获取,页面来源
不过,需要注意,锚链接是不能获取的,
比如:xx.php?name=123#1234
获取的地址是 xx.php?name=123
因为锚链接是前台的东西,是不会发送到后台去的
PHP如何判断一个请求是不是来源于本域并且是ajax请求?
通过请求头的Referer属性可以获取来源,X-Requested-With属性(不代表ajax一定需要这个请求头属性)可以判断是否是ajax。但是请求头这种东西,也知道的,很容易伪造。如果仅仅是做业务上的判断,请求头就够了。 参考技术A 请自行验证一下jquery中对于ajax是这样写的,xhr对象有setRequestHeader这个方法,设置头部:
if ( !options.crossDomain && !headers["X-Requested-With"] )
headers["X-Requested-With"] = "XMLHttpRequest";
// Set headers
for ( i in headers )
xhr.setRequestHeader( i, headers[ i ] );
所以如果在PHP端验证的话,是这样的:
public static function isAjax()
return 'XMLHttpRequest' == @$_SERVER['HTTP_X_REQUESTED_WITH'];
以上是关于请问下 php 怎么获取 ajax 请求 来源页面的 完整 url 地址啊?的主要内容,如果未能解决你的问题,请参考以下文章