Javascript $#服务器[';HTTP#u REFERER';]不工作
我有目前的设置。。。 包含Javascript $#服务器[';HTTP#u REFERER';]不工作,javascript,php,Javascript,Php,我有目前的设置。。。 包含 $(document).ready(function() { $.ajax({ cache: false, type: 'GET', url: './memberfunctions/getRef.php', data: {}, beforeSend:function(){ }, success:function(data){ // successful request; do something
$(document).ready(function() {
$.ajax({
cache: false,
type: 'GET',
url: './memberfunctions/getRef.php',
data: {},
beforeSend:function(){
},
success:function(data){
// successful request; do something with the data
console.log(data);
},
error:function(){
// failed request; give feedback to user
alert("idk what happened");
}
});
});
php是
<?php
$httpReferer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
echo $httpReferer;
?>
如果我进入pastebin,键入并单击mysite.com,我会进入mysite.com,控制台显示mysite.com。很明显,我希望控制台显示pastebin.com/######
我知道HTTP_REFERER是不安全的、易受攻击的、糟糕的、不可靠的。它有一个很小的非重要用途。对于您的AJAX请求,推荐人不是pastebin.com。您的父页面会将推荐人设置为pastebin 您可以尝试以下方式作为内联脚本:
var ref=“”;
或以下,不需要内联
var ref=文件引用人;
除非我在AJAX调用的意图中遗漏了什么。您是否检查了浏览器是否在HTTP请求中发送了“referer”头?您可以使用开发人员工具来实现这一点。您需要在ajax请求中传递
文档。REFERER
,并查看它,而不是$\u SERVER['HTTP\u REFERER']
当混合使用php和js时,您需要echo
$\u SERVER['HTTP\u REFERER']谢谢@Alon,我对php不太习惯。根据您的评论更正。完美!我怀疑是这样的。