2012-02-22 14 views

Odpowiedz

32

Po przeszukiwania "problematyczne" odpowiedź, poprawna składnia jest następująca:

$crawler = $client->request('GET', '/foo/', array(), array(), array(
    'HTTP_X-Requested-With' => 'XMLHttpRequest', 
)); 
6

Metoda po prostu sprawdza, czy nagłówek X-Requested-With jest równoważny z XMLHttpRequest. Jeśli to metoda używasz do ustalenia, czy wniosek jest ajax połączeń, można symulować zachowanie w kliencie testowym dodając odpowiedni nagłówek na życzenie:

class FooFunctionalTest extends WebTestCase 
{ 
    $client = static::CreateClient(); 
    $crawler = $client->request('GET', '/foo/', array(), array(), array(
     'X-Requested-With' => 'XMLHttpRequest', 
    )); 
    // ... 
} 

Więcej informacji można znaleźć na temat obiekt żądania in the source code.

+0

Po przetestowaniu nie działa. :/ – bux

+0

problem z składnią, zobacz moją odpowiedź. Thank's =) – bux

2

Dla POST, PUT:

$crawler = $client->request('POST', '/foo/', array('param' => 'value'), array(), 
array(
    'HTTP_X-Requested-With' => 'XMLHttpRequest', 
)); 

Dla POST, PUT z surowego JSON ciała:

$crawler = $client->request('POST', '/foo/', array(), array(), array(
    'HTTP_X-Requested-With' => 'XMLHttpRequest', 
    'CONTENT_TYPE' => 'application/json', 
), '{"param": "value"}');