一尘不染

如何通过symfony2控制器获取Ajax发布请求

ajax

我发送这样的短信

html标记

<textarea id="request" cols="20" rows="4"></textarea>

JavaScript代码

var data = {request : $('#request').val()};

$.ajax({
    type: "POST",
    url: "{{ path('acme_member_msgPost') }}",
    data: data,
    success: function (data, dataType) {
        alert(data);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert('Error : ' + errorThrown);
    }
});

symfony2控制器代码

$request = $this->container->get('request');
$text = $request->request->get('data');

$text为空…

我已经尝试通过Firefox HTTP请求测试器进行普通的发布请求(不是Ajax)。

/app_dev.php/member/msgPost

控制器工作并$text具有价值。

所以我认为php代码还可以,但是Ajax方面存在问题

成功地调用’success:function’。

您如何获取javascript数据结构的内容?


阅读 179

收藏
2020-07-26

共1个答案

一尘不染

首先,您无需访问控制器中已实现的容器 ContainerAware

所以基本上,您的代码应该像这样 Controller.php

public function ajaxAction(Request $request)
{
    $data = $request->request->get('request');
}

另外,通过console.log(data)在应用程序的JS中使用,确保发送的数据不为null 。

最后是您的问题的答案
:您没有使用正确的变量,需要访问的值,$('#request').val()但将其存储在request变量中,并data在控制器中使用了变量名。

考虑更改变量的名称,因为它很混乱。

2020-07-26