我正在尝试向Oauth的API发送回复。可悲的是,Symfony2文档很难解释$response->headers->set(...);
的所有不同部分。
这是我的响应部分,它位于我的OauthController内部:
$response = new Response();
$response->setStatusCode(200);
$response->headers->set('Location', 'url=' . $auth_url);
return $response->send();
控制器必须有一个return
语句,这样,我的代码看起来不错,或者我如何从普通的php复制header('Location: ' . $auth_url);
?
谢谢!
答案 0 :(得分:6)
由于您要进行重定向,因此您可以使用RedirectResponse
代替常规Response
:
return new RedirectResponse($auth_url);
答案 1 :(得分:0)
虽然@TomaszMadeyski在为您提供更好的替代方案方面做得很好,但我想花一点时间解释为什么您的代码不起作用(因为它很好)。
问题是控制器很多都会返回响应,但它不能发送响应。如果您查看the front controller,您会发现它会负责发送回复:
$response = $kernel->handle($request);
$response->send();
背后的原因是Symfony允许您编辑控制器和send()
之间的响应(例如,添加一个很棒的工具栏或配置内容类型)。
答案 2 :(得分:0)
如果您正在进行重定向,那么您的HTTP response code不应该是300范围内的代码之一,以表示重定向吗?
另外,您可能想要查看此Symfony Cookbook article on redirecting。