jqueryajax请求的控制器路径
在我看来,我在表单提交上有一个表单和一个AJAX事件:jqueryajax请求的控制器路径,jquery,ajax,symfony,Jquery,Ajax,Symfony,在我看来,我在表单提交上有一个表单和一个AJAX事件: var data = { msg1: $("#msg1").val(), msg2: $("#msg1").val(), msg3: $("#msg1").val(), }; $.ajax ({ type: "POST", url: "{{ path('new_chat_m
var data = {
msg1: $("#msg1").val(),
msg2: $("#msg1").val(),
msg3: $("#msg1").val(),
};
$.ajax ({
type: "POST",
url: "{{ path('new_chat_msg') }}",
data: data,
complete: function (xhr, result) {
console.log("ok");
}
});
我想呼叫我的控制器,其名称为new_chat_msg:
如您所见,我使用注释进行布线。
new.html.twig是表单所在的视图
但是当我提交表单时,它没有进入方法
所以我不知道如何调用控制器并将JSON数据传递给他
谢谢你的帮助
我想你应该看看这个。
500内部服务器错误通常表示代码中的某个地方有错误的代码,所以我可以说您必须向addMsgChat操作添加操作后缀,就像addMsgChatACtion一样
代码中的另一个错误是,控制器操作必须返回Response对象,所以您需要在操作中至少返回新的响应,以查看它是否工作
p、 s:我建议使用bundle来调用JS文件中的路由。谢谢xurshid29,我将控制器名称更改为ajaxAction,并返回测试响应。但是问题仍然是一样的…@Macbernie use FOSJsRoutingBundle bundleOk,我做了,但是bundle路由生成的路径。generate'new_chat_msg'与之前的twig{{path'new_chat_msg'}}相同…@Macbernie好的,你能展示你的整个contoller类吗?@Macbernie-hmm,我在你的控制器类中没有看到任何无效代码,所以我没什么可说的了。。但是,如果我是你,我会做这样的事。检查我是否正确导入了类。2.删除$text=$request->request->get'data';验证错误是否来自该操作。是否导入了?
/**
* Commande controller.
*
* @Route("/commande")
*/
class CommandeController extends Controller
{
/**
* Flush new chat message.
*
* @Route("/", name="new_chat_msg", options={"expose"=true})
*/
public function ajaxAction(Request $request)
{
$text = $request->request->get('data');
return new Response('Hello world!');
}
}