我发送这样的短信
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为空…
$text
我已经尝试通过Firefox HTTP请求测试器进行普通的发布请求(不是Ajax)。
/app_dev.php/member/msgPost
控制器工作并$text具有价值。
所以我认为php代码还可以,但是Ajax方面存在问题
成功地调用’success:function’。
您如何获取javascript数据结构的内容?
首先,您无需访问控制器中已实现的容器 ContainerAware
ContainerAware
所以基本上,您的代码应该像这样 Controller.php
Controller.php
public function ajaxAction(Request $request) { $data = $request->request->get('request'); }
另外,通过console.log(data)在应用程序的JS中使用,确保发送的数据不为null 。
console.log(data)
最后是您的问题的答案 :您没有使用正确的变量,需要访问的值,$('#request').val()但将其存储在request变量中,并data在控制器中使用了变量名。
$('#request').val()
request
data
考虑更改变量的名称,因为它很混乱。