[英]I'm trying to pass HTTP_X_FORWARDED_FOR in header to php server but not getting its value in server
I setup following php script on first server to print all server values 我在第一台服务器上设置以下php脚本以打印所有服务器值
var_dump($_SERVER)
from another server calling first server link 从另一个服务器调用第一个服务器链接
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => FIRST_SERVER_URL,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
"HTTP_X_FORWARDED_FOR: 111.90.148.19",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
But I'm not getting value of HTTP_X_FORWARDED_FOR in $_SERVER values 但是我没有在$ _SERVER值中得到HTTP_X_FORWARDED_FOR的值
I tried javascript like this. 我试过这样的javascript。
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("GET", FIRST_SERVER_URL);
xhr.setRequestHeader("HTTP_X_FORWARDED_FOR", "111.90.148.19");
xhr.send(data);
You should set the header name in JS according to HTTP rules, not PHP internal name. 您应该根据HTTP规则在JS中设置标头名称,而不是PHP内部名称。 The header name is actually:
标头名称实际上是:
X-Forwarded-For
So your JS code should be like this: 因此,您的JS代码应如下所示:
...
xhr.setRequestHeader("X-Forwarded-For", "111.90.148.19");
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.