我正在使用 Zend Framework 1.11 版,我遇到了以下问题:
提交表单后,浏览器显示“未收到数据:无法加载网页,因为服务器未发送数据。” (在 chrome 上)和“在页面加载时重置了与服务器的连接。” 在火狐上。
现在,可能与我的机器有关,因为我无法在具有类似配置的其他机器上重现错误,除了服务器版本(我已经升级到 apache 2.4.7,其他机器有 apache 2.2)。
现在请求通过的代码是:
$form = new Website_Form_ArtUpload();
if ($this->getRequest()->isPost())
{
$response = $this->_getService()->upload($this->getRequest()->getPost());
My_Logger::log(print_r($response));
if (!$response->isValid()) {
if($response->getData() instanceof Zend_Form) {
$form = $response->getData();
}
if($response->hasMessages()) {
My_Logger::log(print_r($response->getAllMessages()));
$this->view->messages = $response->getAllMessages();
}
} else {
$this->_helper->redirector->gotoSimple('new', 'product', 'website');
return;
}
}
$this->_getService()->upload() 的内容
// Validate the form
$form = new Website_Form_ArtUpload();
if (!$form->isValid($data))
return new My_Service_Response(
My_Service_Response::FAILURE,
$form,
array(My_Model_Message::MESSAGE_TYPE_ERROR => $this->getTranslator()->_('The product cannot be uploaded'))
); //here it halts
所以,这一次,我不知道为什么数据不应该是有效的,因为一切似乎都很好。但是假设数据确实无效,因为响应失败并且有消息($this->view->messages = $response->getAllMessages()
记录消息),我不明白为什么不只是一个很好的错误说“无法上传产品”。
如果您需要任何其他代码或任何日志,我很乐意提供它们。
注意:其他有错误的表单会正确返回消息。请不要告诉我我们应该有相同的服务器版本,我知道,但是如果将来某个时候我们想要迁移到 2.4,我们宁愿已经解决了这个问题。