【问题标题】:How can I get post parameters on ajax request in Symfony 3如何在 Symfony 3 中获取有关 ajax 请求的发布参数
【发布时间】:2016-12-20 07:17:20
【问题描述】:

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

【问题讨论】:

标签: javascript php ajax symfony


【解决方案1】:

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

像这样,

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

【讨论】:

  • 尝试实施您的解决方案,但似乎不起作用。我确定你的答案是好的,但我正在寻找我的代码中有什么问题
  • 实际上,这对于发布的 json 数据根本不起作用。
  • @Cerad 你能告诉我我要做什么吗?
  • @Cerad OP 将数据作为参数而不是 JSON 数据传递。
【解决方案2】:

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

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

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

现在我可以使用

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

【讨论】:

  • 如果有机会,请阅读一下发布 json 和发布表单数据之间的区别。您的解决方案不可持续。
  • 我在解决方案中犯了一个错误,我对其进行了编辑。现在我使用 $request->get('selectedBalls') 。根据您的说法,这不是一个很好的解决方案吗?注意:我发送ajax数据不使用任何形式。
  • 阅读我给你的链接中的答案。具体来说,看看 $content 是如何使用的。
  • 对不起。自 30 分钟以来,我一直在尝试实施您发布的链接的解决方案。但我无法实现它。使用函数 $request->getcontent() 会返回一个字符串“url 编码”,如“id=34&pseudo=bob”。 . .然后确定...... json_decode 函数不适用于该字符串格式。
猜你喜欢
  • 1970-01-01
  • 2012-02-16
  • 2012-04-04
  • 1970-01-01
  • 2023-03-26
  • 2020-06-12
  • 2017-02-16
  • 2012-01-17
  • 1970-01-01
相关资源
最近更新 更多