Я пытаюсь выполнить асинхронную проверку контактной формы в ZF3 с помощью ajax. Это мой контактконтроллер
public function contactAction()
{
$form = $this->form;
$request = $this->getRequest();
$response = $this->getResponse();
$vm = new ViewModel(['form' => $this->form]);
$form->setInputFilter(new ContactFormFilter());
if (!$this->getRequest()->isPost())
return new ViewModel(['form' => $this->form]);
$data = $request->getPost();
$form->setData($data);
if (!$form->isValid())
{
$vm->setTerminal(true);
return $response->setContent(\Zend\Json\Json::encode($form->getMessages()));
}
}
а ниже — contact.phtml со скриптом jquery.
$(function(){
$("#foo").submit(function(event){
event.preventDefault();
$.ajax({
url: '/kontakt',
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
async: true,
data: ($("#foo").serialize()),
success: function (data) {
console.log(data);
alert(data);
},
error: function (data) {
console.log(data);
}
});
})
})
Форма имеет идентификатор "foo";
Проблема в том, что когда я отправляю, я каждый раз получаю такой ответ: (это из консоли)
Object
-email :Object
-message :Object
-subject :Object
-personal-data :Object
и когда я открываю, например, «Объект сообщения», он показывает мне: isEmpty: «Поле требуется», даже если поле сообщения не пусто!
Может ли кто-нибудь знать, что я делаю неправильно?