0

我正在使用 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...

我做错了什么吗?

4

1 回答 1

1

这些输出很可能是由您编写的代码引起的。

首先,通过重新安装它们来确保您的供应商是干净的。那么,它也可能是您编写的表单事件监听器/订阅者,所以也可以这样看看。

于 2012-08-20T06:16:26.537 回答