我正在使用 Ajax 发布表单。
在 Ajax 调用中绑定表单时,我有一个令人惊讶的反应:
public function newCartAjaxAction(Request $request)
{
$form = $this->container->get('new_cart_form.factory')->create();
$formHandler = $this->container->get('new_cart_form.handler');
if ('POST' === $request->getMethod())
{
$form->bind($request);
if ($form->isValid())
{
$formHandler->processValidForm($form);
$response = new Response();
$response->headers->set('Content-type', 'application/json; charset=utf-8');
$response->setContent(json_encode('hello'));
return $response;
}
//...
}
//....
}
使用 firebug,我惊讶地在 ajax 响应中获得了 3 个输出:
array(2) {[0]=>int(3)[1]=>int(5)} //unexpected response
int(3) //unexpected response
"hello" //The only response needed
经过调试,我发现输出1和2来自$form->bind($request);
有谁知道这是为什么?我很惊讶从表单绑定步骤获得响应,因为我应该发送的唯一响应是 $response...
我做错了什么吗?