PHP kullanarak XMLHttpRequest istemci taklit etmek nasıl?

5 Cevap php

Ben nasıl PHP kullanarak XMLHttpRequest istemci taklit bir örnek arıyorum.

Diğer bir deyişle, HTTP POST iletisinin üzerine isteği göndermek ve almak ve geri iletiyi işlemek.

5 Cevap

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, PHP ile yazılmış http istemcisi var yani!

<?php

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

bu amaç için curl kullanabilirsiniz

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

Eğer 'gerçekten' bir AJAX isteği simüle etmek istiyorsanız, birlikte yukarıdaki tüm çözümleri ile, kendi isteği ile this header gönderme düşünmelisiniz:

X-Requested-With: XMLHttpRequest

(Özel başlıkları ayarlamak için nasıl çözümler kılavuzları kontrol edin). Onlar AJAX ile veri isteği zaman prototip, jQuery, Mootools ve tüm bunlar da bu başlık göndermek.

Kolay yöntem size göndermek istediğiniz verileri bir örnek var, özellikle komut satırı aracı curl olacaktır.

Kullanmak için örnek bir daha hızlı kılavuz jQuery.post(), http://docs.jquery.com/Post