Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Symfony 3中获取ajax请求的post参数_Javascript_Php_Ajax_Symfony - Fatal编程技术网

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

Javascript 如何在Symfony 3中获取ajax请求的post参数,javascript,php,ajax,symfony,Javascript,Php,Ajax,Symfony,我有一个ajax请求工作正常。我的问题是我真的不知道如何正确地使用我的控制器以我想要的格式获取数据 我想用这种方法: $request->request->get('pseudo'); // will return "bob" 这是我的控制器代码: public function mainPlayAction(Request $request) { if ($request->isXmlHttpRequest()) { $allContent

我有一个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);
    },
})

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

像这样,

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

我找到了一个好答案

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

contentType: "application/json; charset=utf-8"
现在我可以使用

$request->get('selectedBalls');

试图实施您的解决方案,但似乎不起作用。我相信你的答案是正确的,但我正在寻找代码中的错误事实上,这对发布的json数据根本不起作用。@Cerad你能告诉我我必须做什么吗?@Cerad OP将数据作为参数而不是json数据传递。如果有机会,请仔细阅读发布json和发布表单数据之间的区别。您的解决方案是不可持续的。我在解决方案中犯了一个错误,并对其进行了编辑。现在我使用$request->get('selectedBalls')。据你说,这不是一个好办法吗?注意:我不使用任何形式发送ajax数据。请阅读我给您的链接中的答案。特别是,看看$content是如何使用的。对不起。我已经尝试了30分钟,以实施你张贴的链接的解决方案。但我无法实现它。使用函数$request->getcontent()返回一个字符串“url encoded”,比如“id=34&pseudo=bob”。然后当然。。。json_解码函数在该字符串格式上不起作用。