Как эмулировать клиент XMLHttpRequest с помощью PHP? - PullRequest
2 голосов
/ 17 ноября 2009

Я ищу пример того, как эмулировать клиент XMLHttpRequest с использованием PHP.

Другими словами, отправьте запрос через сообщение HTTP POST, получите и обработайте сообщение обратного вызова.

Ответы [ 5 ]

7 голосов
/ 17 ноября 2009

Если вы хотите «реально» смоделировать AJAX-запрос, вам следует вместе со всеми вышеупомянутыми решениями рассмотреть возможность отправки этого заголовка вместе с вашим запросом:

X-Requested-With: XMLHttpRequest

(ознакомьтесь с руководствами по решениям, как установить пользовательские заголовки). Prototype, jQuery, mootools и тому подобное отправляют этот заголовок, когда запрашивают данные через AJAX.

6 голосов
/ 17 ноября 2009

вы можете использовать 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);
4 голосов
/ 17 ноября 2009

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 : ок, это http-клиент, написанный на 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()); 
3 голосов
/ 17 ноября 2009

Самый простой метод - это инструмент командной строки curl, особенно если у вас есть образец данных, которые вы хотите опубликовать.

0 голосов
/ 17 ноября 2009

Еще более быстрое руководство с примером использования jQuery.post(): http://docs.jquery.com/Post

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...