gpt4 book ai didi

ajax - 如何通过symfony2 Controller 获取Ajax发布请求

转载 作者:行者123 更新时间:2023-12-03 11:46:39 25 4
gpt4 key购买 nike

我发送这样的短信

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 Controller 代码
$request = $this->container->get('request');
$text = $request->request->get('data');

但是 $text为null ...

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

Controller 正常工作,并且 $text具有值。

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

成功地调用'success:function'。

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

最佳答案

首先,您不需要访问 Controller 中的容器,因为它已经实现了ContainerAware
所以基本上您的代码应该在Controller.php中看起来像这样

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

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

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

考虑更改变量的名称,因为它很困惑。

关于ajax - 如何通过symfony2 Controller 获取Ajax发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18826821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com