我试图弄清楚如何重定向到新页面(不同的应用程序, Controller ,操作)并维护当前的POST数据。

我的应用程序正在验证POST数据,如果满足某些条件,我想重定向到其他位置,但是请确保POST数据作为POST数据传递到该新页面。这是一个粗略的例子:

POST /app1/example HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
    var1=foo&var2=bar

在我的exampleAction(Zend_Controller_Action)中,我检查是否为var1 == foo,是否要使用相同的POST数据将(302)重定向(302)到/app2/example。可能是这样的吗?
HTTP/1.x 302 Found
Location: /app2/example
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
    var1=foo&var2=bar

我可以看到如何使用Zend_Http_Client创建一个新的HTTP请求,但我不是想简单地请求页面并显示内容。我还是应该继续使用Zend_Http_Client吗?目前,我正在玩这样的游戏:
$this->getResponse()->setRedirect('/app2/example/', 302);
$this->getResponse()->setBody(http_build_query($this->_request->getPost()));

我确定我想做的事情可以通过一些欺骗和恶魔般的手段来实现,但这绝对是在暗示我。任何帮助表示赞赏。

-rk

最佳答案

与其将浏览器重定向到新位置,还不将请求从 Controller 转发到另一个 Controller ?

return $this->_forward("action", "controller", "module");

关于php - 使用/POST数据重定向到新页面(PHP/Zend),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1309456/

10-16 20:42