我试图弄清楚如何重定向到新页面(不同的应用程序、控制器、操作)并维护当前的 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) 重定向到 /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