gpt4 book ai didi

javascript - 如何在 Symfony Controller 中使用 ajax 正确获取参数发送(注释)?

转载 作者:行者123 更新时间:2023-12-03 01:05:10 26 4
gpt4 key购买 nike

过去两天我一直在苦苦挣扎,到目前为止我在互联网上找到的答案都没有对我有帮助。

我正在尝试在 symfony 项目上使用 ajax 传递数据。目标是更新 Twig 值。

所以我设置了一个像这样的ajax调用:

$searchbar = $("#searchBar");
var btnSearch = document.getElementById("btnRecherche");

btnSearch.onclick = chargeClientsData;

function chargeClientsData()
{
let searchVal = $("#searchBar").val();
console.log(searchVal);

$.ajax({
url: "{{ path('showIt') }}", // point to server-side PHP script
dataType: 'json',
data: {data : searchVal },
type: 'POST',
success: function(data){
console.log(data);
$('#monelement').html("test");
}
});


}

我想知道是否使用这个 Controller :

/**
* @route("/showIt}", name="showIt", methods="POST")
* @param $request
* @return Response
*/
public function showIt(Request $request){

var_dump($request);
if($request->isXmlHttpRequest()){
$search = $request->query->get('data');
var_dump($search);
$response = $this->checkValidRequest($request);
return $response->setData(['search' => $search ]); // working
}

$response = $this->checkValidRequest($request);
$response->setStatusCode(500);
return $response;

}

var_dump($request) 没有显示任何值,当然 var_dump($search) 为 NULL。

在 Twig 中,$("#searchBar");发送正确的值,我确实获得了成功,但值为空

我是不是做错了什么?

感谢您的帮助!

最佳答案

由于您使用的是 POST 请求,因此您可以在 Controller 中获取 POST 参数,如下所示:

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

而不是

$search = $request->query->get('data');

您当前正在使用的。请注意,$request->query->get('data') 用于 GET 方法。

关于javascript - 如何在 Symfony Controller 中使用 ajax 正确获取参数发送(注释)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52440158/

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