开发者

How to emulate XMLHttpRequest client using PHP?

I'm looking for an example how to emulate XMLHttpRequest client using PHP.

In other words, send the request over HTTP POST message, and receive and process the callback message开发者_开发技巧.


If you want to 'really' simulate an AJAX request, you should, together with all of the above solutions, consider sending this header with your request:

X-Requested-With: XMLHttpRequest

(check the manuals to the solutions how to set custom headers). Prototype, jQuery, mootools and the such all send this header when they request data via AJAX.


you can use curl for that purpose

<?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);


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>

edit: ok, so it's http client written in PHP!

<?php

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


The easiest method would be the command line tool curl, especially if you have a sample of the data you want to post.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜