symfony 在获取后找不到 post 数据

symfony don't find post data after fetch

我正在尝试使用 twig 中的 fetch 发送 post 数据。但是我无法访问控制器中的那些变量。

这是我的取物


let response = await fetch(baseUrl + '/aaa/nom-de-levenement/add', {
        method: 'POST',
        headers: {
            'X-CSRF-TOKEN': token,
            "Content-type": "application/json",
        },

        body: {
            "page": "pageName"
        }
    })
    return response.json()

和我的控制器:


/**
     * @Route("/add", methods={"POST"})
     */
    public function createPage($slug, EntityManagerInterface $entityManager, EventRepository $eventRepository, Request $request){

        $event = $eventRepository->findOneBy(['slug' => $slug]);

        $data = $request->request->get('page');

        dd($data);
}

并且转储 returning null

感谢您的帮助

例如,我尝试更改 fetch 中的内容类型以及控制器中的某些内容:

$_POST return 空

$request->get('page') return 空

我尝试使用 postman 的控制器,它 return 很好的变量。

要以这种方式发送 POST 数据,您应该使用 FormData 对象:

const data = new FormData();
data.append('page', 'pageName');

let response = await fetch(baseUrl + '/aaa/nom-de-levenement/add', {
    method: 'POST',
    headers: {
        'X-CSRF-TOKEN': token,
        "Content-type": "application/json",
    },
    body: data
})
return response.json()

然后您可以在您的控制器中执行此操作:

$data = $request->request->get('page');

如果您尝试在 body 中传递“原始”数据,您可以使用 $request->getContent() 方法访问它,但我相信在这种情况下 return "[object Object]" 因为 body 对象将被简单地解析为字符串。