使用Slim 3重定向POST请求

时间:2017-03-13 10:26:48

标签: php redirect server slim

我在PHP中使用Slim 3 Framework(server1)和Web服务器(server2)来访问/编辑数据。

我处理用户身份验证并在server1中定义我的身份验证路由。 server1和server2之间的对话框与令牌一起使用。

我想使用我的server1将GET / POST请求转发到我的server2。最好的方法是什么?

在我的server1上使用Slim,我可以使用withRedirect方法,但我无法使用POST请求:

$app->post('/api/resource', function ($request, $response, $args) {
   return $response->withRedirect("http://server2/api/resource?additionla_parameter=value");
});

也许我应该使用Guzzle或代理等应用程序?

1 个答案:

答案 0 :(得分:3)

我个人会去Guzzle路线,意思是在服务器端创建一个客户端与server2进行通信,但实际上有一个HTTP 307响应代码用于此类目的。它声明客户端不应在重定向期间更改方法(在您的情况下为POST)。这是一个很好的小总结:https://softwareengineering.stackexchange.com/questions/99894/why-doesnt-http-have-post-redirect/99966#99966

我只是看看苗条的来源,该方法接受状态代码的第二个参数,未设置时默认为302。见https://github.com/slimphp/Slim/blob/3.x/Slim/Http/Response.php#L289。所以试试这个:

$response->withRedirect("http://postplease", 307);

这可能有效