2016-10-21 8 views
1

Symfony3アプリケーションの機能テストを書いていますが、コントローラから返されたデータを受け取ることができないという問題があります。コントローラの呼び出しのたびに301リダイレクトが返されます。私は気づいた、コントローラの呼び出しのすべての適切なコントローラにリダイレクトを担当するsetTargetUrlメソッドでRedirectResponseクラスも呼び出すことに気づいた。ユーザーとしてアプリケーションを使用するとすべてがうまくいくが、クローラーはリダイレクトに関する情報しか返さない。ここでコントローラレスポンスの適切な内容にアクセスできない

は一例です:

私の試験方法:

public function testListController() 
{ 
    $client = static::createClient(); 
    $crawler = $client->request('GET', '/list'); 
    print_r($client->getResponse()); 
} 

方法返します

<head> 
    <meta charset="UTF-8" /> 
    <meta http-equiv="refresh" content="1;url=https://localhost/list/" /> 

    <title>Redirecting to http://localhost/list/</title> 
</head> 
<body> 
    Redirecting to <a href="http://localhost/list/">https://localhost/list/</a>. 
</body> 

私はページの適切なコンテンツにアクセスすることができないのはなぜ?すべてのフックが無効になっており、コントローラにアクセスする前に私が呼び出す方法はありません。

+0

はあなたがGET /リストまたは類似した何かを呼び出すことができます前に、通常は、ログインする一つの必要性のでしょうか? – LBA

+2

あなたのWebサーバー、mod_rewriteまたはアプリケーションが、後続のスラッシュ '/'を使用してURLを後続のスラッシュにリダイレクトすることができますか? –

+1

次のように、ルートの最後に '/'をつけて試してください: '$ client-> request( 'GET'、 '/ list /');'そうなら、あなたのルート定義をチェックしてください。 – Matteo

答えて

1

この現象は、ルート定義の末尾にスラッシュがあることが原因です。だから、これを試してみてください。

$crawler = $client->request('GET', '/list/'); 

の代わりに:

$crawler = $client->request('GET', '/list'); 

・ホープ、このヘルプ

関連する問題