Symfony2 - 使用来自事件监听器的POST数据转发到外部URL?

时间:2016-06-17 13:54:37

标签: php symfony

我使用来自this SO answer的事件侦听器来重定向具有特定角色的用户。但是现在,对于一个角色,我必须使用一些POST数据将用户重定向到外部链接。

因为在onKernelResponse()我必须设置$event响应而RedirectResponse无法使用POST(至少那是我被告知的),我有点迷路了。我该怎么办?

1 个答案:

答案 0 :(得分:2)

在HTTP 1.1中,您有307状态代码,表示请求应重复。因此,您可以使用此代码创建Http Request。

301/302不能为POST工作。另一种方法是使用CURL,但它因为你使用其他客户端而有所不同。

  

10.3.8 307临时重定向

     

请求的资源暂时驻留在不同的URI下。由于重定向有时可能会被更改,因此客户端应该继续使用Request-URI来处理将来的请求。如果由Cache-Control或Expires标头字段指示,则此响应仅可缓存。

     

临时URI应该由响应中的Location字段给出。除非请求方法是HEAD,否则响应的实体应该包含一个带有指向新URI的超链接的短超文本注释,因为许多HTTP / 1.1前用户代理不理解307状态。因此,注释应该包含用户在新URI上重复原始请求所需的信息。

     

如果收到307状态代码以响应GET或HEAD以外的请求,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会改变请求的条件。发出的。

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

代码:

{{1}}