如何在Symfony 3中获取ajax请求的post参数

时间:2016-08-13 11:18:11

标签: javascript php ajax symfony

我有一个ajax请求正常工作。我的问题是我真的不知道如何正确使用我的控制器以我想要的格式获取数据。

我想使用这种方法:

$request->request->get('pseudo'); // will return "bob"

这是我的控制器代码:

public function mainPlayAction(Request $request)
{

    if ($request->isXmlHttpRequest())
    {
        $allContent = $request->getContent(); // will return a string with this format "selectedBalls=34&selectedStars=11"

        $selectedBalls = $request->request->get('selectedBalls'); // will return null

        $selectedstars= $request->request->get('selectedStars'); // will return null

        $all = $request->request->all(); // will return Array[0]

        $response = [
            'allContent' => $allContent,
            'selectedballs' => $selectedBalls,
            'selectedStars' => $selectedStars,
            'all' => $all,                
            'success' => true,
            "status" => 100
        ];

        return $this->json($response);
    }
}

这是我的ajax代码

$.ajax({
    url: url,
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    type: "POST",
    data: {
        'selectedballs': selectedBalls,
        'selectedStars': selectedStars,
        'countGames': countGames
    },
    success: function (response) {
        window.console.log(response);
    },
})

2 个答案:

答案 0 :(得分:3)

您只需在->get()对象上调用Request即可将数据与AJAX请求一起传递。

喜欢这样,

$selectedballs=$request->get('selectedballs');
$selectedStars=$request->get('selectedStars');
$countGames=$request->get('countGames');

答案 1 :(得分:0)

我找到了一个很好的答案。

我从我的ajax请求中删除了这行代码

contentType: "application/json; charset=utf-8"

现在我可以使用

检索我的数据了
$request->get('selectedBalls');