如何使用PHP模拟XMLHttpRequest客户端?

时间:2009-11-17 07:33:11

标签: php ajax xmlhttprequest

我正在寻找一个如何使用PHP模拟XMLHttpRequest客户端的示例。

换句话说,通过HTTP POST消息发送请求,并接收并处理回调消息。

5 个答案:

答案 0 :(得分:7)

如果您想“真正”模拟AJAX请求,您应该与上述所有解决方案一起考虑发送this header请求:

X-Requested-With: XMLHttpRequest

(查看解决方案的手册如何设置自定义标题)。 Prototype,jQuery,mootools等都是在通过AJAX请求数据时发送这个标题。

答案 1 :(得分:6)

您可以将curl用于此目的

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// set the post 
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,array( 'foo' => 'bar'));

// grab URL and pass it to the browser
$result = curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
var_dump($result);

答案 2 :(得分:4)

server.php:

<?php var_dump($_POST);

client.html:

<html>
 <head>
  <title>omg</title>
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript">
  $(document).ready(function () {
      $.post(
          "server.php"
        , {omg: "wtf"}
        , function (data) { alert(data); }
      );
  });
  </script>
 </head>
 <body></body>
</html>

编辑:好的,这是用PHP编写的http客户端!

<?php

$r = new HTTPRequest("server.php", HTTP_METH_POST);
$r->addPostFields(array('omg' => 'wtf'));
$r->send();
var_dump($r->getResponseCode());
var_dump($r->getResponseBody()); 

答案 3 :(得分:3)

最简单的方法是命令行工具curl,特别是如果您有要发布的数据样本。

答案 4 :(得分:0)

使用jQuery.post()http://docs.jquery.com/Post

的示例更快速的指南