如何在symfony 4上从ajax请求中检索发布数据?

时间:2019-04-26 14:16:36

标签: php jquery ajax symfony xmlhttprequest

我正在设置表格。所有数据都在js文件中检索。如何将这些数据发送到symfony控制器?

我已经尝试过:$request->get('values');$request->request->all();,但实际上都没有。

控制器PHP:

    /**
     * @Route("/dem", name="dem")
     */
    public function index(Request $request)
    {
       if (isset($request->isXmlHttpRequest())) {
          dump(json_decode($request->get('values')));
       }
       return $this->render('dem/index.html.twig');
    }

JS文件:

   console.log(values) // response: json of an array of elements 
   $.ajax({
      method: "POST",
      url: url,
      data: {values: values},
      success: data => {
         console.log('data : ');
         console.log(data);
      }
   });

HTML表单:

    <form id="dem" name="dem" action="{{ path('dem') }}" method="POST" class="w-75 m-auto">

我希望得到元素数组的输出

全部:}

2 个答案:

答案 0 :(得分:0)

也许您可以使用$request->getContent();,它返回请求的原始json。在必须取消序列化之后。

$parametersAsArray = [];
if ($content = $request->getContent()) {
    $parametersAsArray = json_decode($content, true);
}

答案 1 :(得分:0)

您的代码在控制器中似乎正确。虽然,您必须在js文件中做一些小的更改:

$.ajax({
                        url: url,
                        data: {
                            values: values
                        },
                        type: 'POST',
                        dataType: "json",
                        success: function (data) {
                           console.log('data : ');
                           console.log(data);
                        }