0

目前,我在一个项目上工作,我尝试从 AJAX 请求中获取数据,方法是“POST”。

这是我的 JS 代码:

function ajax() {
    var form = new FormData();
    // Data from contenteditable which is id is "title".
    form.append('article[title]', $('#title').html().trim());
    // Data from contenteditable which is id is "content".
    form.append('article[content]', $('#content').html().trim());
    // Data from input checkbox which is id is "article_parution".
    form.append('article[parution]', $('#article_parution').val());
    // Data from input hiden which is id is "article__token".
    form.append('article[_token]', $('#article__token').val());

    $.ajax({
        method: "POST",
        url: '{{ path("add_article") }}', // /admin/add
        processData: false,
        cache: false,
        data: form
    })
}

我已经使用“console.log()”来验证数据是否存在并且确实如此。

问题是当我尝试在我的控制器中使用它时:

$title = $request->request->get('article[title]');

$title 为空,为什么?

此外,此 URL (/admin/add) 在网站中受FosUserBundle保护(用户必须在 admin 中连接才能访问此网站部分)。

4

1 回答 1

1

你可以转储你的请求,看看你必须得到什么

dump($request->request);

我认为解决方案是

$request->request->get('article')['title'];

您还可以在 Javascript 中的文章['title'] 中添加 ''

于 2018-01-16T09:28:04.477 回答