在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 ...
我做错了吗?
答案 0 :(得分:1)
这些输出很可能是由您编写的代码引起的。
首先,通过重新安装确保您的供应商是干净的。 然后,它也可能是您编写的表单事件监听器/订阅者,因此也可以这样看。