Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 发送';X-request-With:XMLHttpRequest';通过CURL和其他头文件-其他方式?_Php_Curl_Header_Http Headers_Xmlhttprequest - Fatal编程技术网

Php 发送';X-request-With:XMLHttpRequest';通过CURL和其他头文件-其他方式?

Php 发送';X-request-With:XMLHttpRequest';通过CURL和其他头文件-其他方式?,php,curl,header,http-headers,xmlhttprequest,Php,Curl,Header,Http Headers,Xmlhttprequest,当然,我读过几个问题,这些问题都是我问的,但我不得不说,这对我根本不起作用。我将要完成的是 通过PHP和curl发送“X-request-With:XMLHttpRequest”头 通过PHP和curl发送其他http请求头 提供的解决方案对我不起作用 我如何知道我没有发送正确的http请求头? 简单地说 (1) 比较XMLHttpRequest(触发JQuery单击)生成的真实头和Firefox附加组件Live HTTP头中PHP和curl模拟的头 (2) Print\u r()-ing目

当然,我读过几个问题,这些问题都是我问的,但我不得不说,这对我根本不起作用。我将要完成的是

  • 通过PHP和curl发送“X-request-With:XMLHttpRequest”头
  • 通过PHP和curl发送其他http请求头
提供的解决方案对我不起作用

我如何知道我没有发送正确的http请求头?

简单地说

(1) 比较XMLHttpRequest(触发JQuery单击)生成的真实头和Firefox附加组件Live HTTP头中PHP和curl模拟的头

(2) Print\u r()-ing目标脚本中的$\u服务器变量

我得到了哪些不正确/低于我预期的信息?

首先也是最重要的: Firefox Live HTTP头不会捕获我的头(就像它们不存在一样)

其次,通过打印服务器($):

如果我得到任何模拟头,我得到的是
[HTTP\u X\u REQUESTED\u WITH]=>XMLHttpRequest
-而不是:
[X\u REQUESTED\u WITH]=>XMLHttpRequest
。 对于我通过curl\u setopt($ch,CURLOPT\u HTTPHEADER,$curl\u header)发送的任何头,这个问题几乎一直存在——这些头中的任何头都以“HTTP”(Header1:value1)作为前缀

我在PHPVersion5.4.7、curl7.24.0中使用XAMPP

在我询问我正在尝试完成的事情是否可能或者可能不可能,并提前感谢您的回答之前,提供我的代码是一个不错的主意,这是我尝试过的众多代码解决方案之一

$curl_header = array('X-Requested-With: XMLHttpRequest');
$data = "name=miloshio"; // just to be sure I'm doing the POST request
$ch = curl_init('http://example.com/test.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $curl_header);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
echo $result;
我的问题总结如下:

  • 是否可以使用XMLHttpRequest准确发送“X-request-With:XMLHttpRequest” 头通过PHP和curl
  • 是否可以避免将“HTTP_”前缀附加到自定义头 通过PHP和curl发送
  • 在使用PHP和curl时有众所周知的限制吗
  • Firefox Live HTTP头不会显示您的头,因为它们是由服务器发送到另一台服务器而不是客户端(浏览器)

  • Curl发送正确的头文件,你可以尝试通过一个调试代理发送Curl流量,就像你使用windows进行开发一样,我确信有linux的替代方案

  • 如果您试图从$SERVER变量获取头,它们将以HTTP作为前缀,您可以使用来获取不带HTTP_uuu前缀的头


  • 你的方法对我帮助很大。我使用URL、PHP和您的代码伪造了一个xmlhttprequest+1.