我有一个带有Slim 3 Framework (server1)的PHP gate (Server1)和一个用于访问/编辑数据的web服务服务器(server2)。
我处理用户身份验证,并在server1中定义我的身份验证路由。server1和server2之间的对话框使用令牌。
我想使用server1向server2转发GET/POST请求。做到这一点的最好方法是什么?
在我的server1上有了Slim,我可以使用withRedirect方法,但我不能让它与POST请求一起工作:
$app->post('/api/resource', function ($request, $response, $args) {
return $response->withRedirect("http://server2/api/resource?additionla_parameter=value");
});也许我应该使用像Guzzle或proxy这样的应用程序?
发布于 2017-03-13 18:52:42
就我个人而言,这意味着只需要在服务器端创建一个客户端来与server2通信,但实际上有一个HTTP307响应代码来实现这一目的。它声明客户端不应该在重定向期间更改方法(在您的情况下是POST)。下面是一个很好的小结:https://softwareengineering.stackexchange.com/questions/99894/why-doesnt-http-have-post-redirect/99966#99966
我刚刚看了一眼slim源代码,该方法接受了第二个状态代码参数,如果没有设置,该参数的默认值为302。参见https://github.com/slimphp/Slim/blob/3.x/Slim/Http/Response.php#L289。所以你可以试试这个:
$response->withRedirect("http://postplease", 307);那可能行得通。
https://stackoverflow.com/questions/42761334
复制相似问题