Symfony2访问POST(JSON)

时间:2012-03-18 06:19:24

标签: jquery ajax json post symfony

我有一个jQuery为我使用Ajax发送给php的形式。

对于此任务,我使用以下代码:

        $('form').submit(function(event){
        event.preventDefault();
        var form = { message: $('form').serialize() };
        console.log(form);
        $.post('{{ path('PUSChatBundle_add') }}', form, 'json');

这就是firebug在请求中看到的内容:

Parametersapplication/x-www-form-urlencoded
message message=Hi+stackoverflowers
Source
message=message%3DHi%2Bstackoverflowers

现在和Symfony:

public function addAction(Request $request)
{
    $data = json_decode($request->getContent());

    $message = new Message();
    $message->setText($data);

    $em = $this->getDoctrine()->getEntityManager();
    $em->persist($message);
    $em->flush();

    return new Response('Success');
}

以某种方式,PHP无法将json解码为PHP数组。

此致 B.Kaiser

2 个答案:

答案 0 :(得分:3)

尝试$request->getParameter('message');

答案 1 :(得分:0)

我找到了所有邪恶的根源:

我发送了json扔了一个php json-validator,我变成了语法错误。

奇怪,因为jQuery呈现了json     var form = $('form')。serializeArray();

我现在只需要找到详细的错误