我有一个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
答案 0 :(得分:3)
尝试$request->getParameter('message');
。
答案 1 :(得分:0)
我找到了所有邪恶的根源:
我发送了json扔了一个php json-validator,我变成了语法错误。
奇怪,因为jQuery呈现了json var form = $('form')。serializeArray();
我现在只需要找到详细的错误