gpt4 book ai didi

javascript - symfony 在真正比较来自 ajax 的请求后重定向到另一个页面

转载 作者:行者123 更新时间:2023-11-30 20:02:09 25 4
gpt4 key购买 nike

我的 JavaScript 中有一个返回数据的函数。我想将数据发送到我的 Controller 并使用我的 js 中的数据进行测试。然后,如果为真,我想显示另一个页面。

$.ajax({
type: "POST",
url: path,
data: { s_certifiedNir: a.Patients[0].s_certifiedNir },

success: function (data) {

console.log('yooo' + a.Patients[0].s_certifiedNir) ;


}
,
error: function () {
alert('ko');
}

});

这是我的 Controller :

public function getCpsInfosAction(Request $request)
{
$nir= $request->get('s_certifiedNir');
if ($request->isXmlHttpRequest()) {
$encoders = array(new XmlEncoder(), new JsonEncoder());
$normalizers = array(new ObjectNormalizer());
$serializer = new Serializer($normalizers, $encoders);
$data = $serializer->normalize($nir);
if ($data=='2550699999999 34')
{
return $this->redirectToRoute('test');
}

//return new JsonResponse($data);
}

}

我收到了 ko 并且命名空间“DMP”没有注册路径。DMP是我页面的第一个路由。

最佳答案

为什么不直接在响应中设置重定向 URL 并在您的 JS 中处理它?:

public function getCpsInfosAction(Request $request)
{
if ($request->isXmlHttpRequest()) {
// ...
if ($data === '2550699999999 34') {
return new JsonResponse([
'success' => true,
'redirect' => $this->generateUrl('your_route');
]);
}

return new JsonResponse(['success' => false]); // else..
}
}

然后只需从 JavaScript 运行重定向:

$.ajax({
// ...
success: function (data) {
if (data.success) {
window.location.href = data.redirect; // <-- HERE
}
},
// ...
});

关于javascript - symfony 在真正比较来自 ajax 的请求后重定向到另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53261042/

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