【发布时间】:2015-12-30 12:19:49
【问题描述】:
我编写了一个 ajax 代码来将表单数据发送到控制器,但它返回的是源代码。
我正在使用 FOSJsRoutingBundle 在我的 js 代码中生成我的路由(我像文档所说的那样安装和使用它),这是有效的,当它在我的 js 上调用时返回它
/xampp/folder/web/app_dev.php/chat/
我像这样在树枝中呈现我的表单
{{ form_start(form, {'action': '{{ path("chat_page") }}', 'method': 'POST'}) }}
{{ form_widget(form) }}
<input type="submit" value="Send">
{{ form_end(form) }}
我的js代码是这样的
$('form').submit(function(event) {
event.preventDefault();
var url = Routing.generate('chat_page');
console.log(url);
console.log($('#chat_message').val());
$.ajax({
url: url,
type: $('form').attr('method'),
data: $('#chat_message').val(),
success: function(data){
console.log(data);
}
});
$('#chat_message').val('').focus();
});
我的控制器(可能在 ajax 完成后不使用)是这个
/**
* @param Request $request
* @Route("/chat/", name="chat_page", options={"expose"=true})
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function indexAction(Request $request)
{
$chatForm = $this->createForm(ChatType::class);
$client = $this->get('elephantio_client.socketio_key');
$elephantIOClient = $client->getElephantIO();
$elephantIOClient->initialize();
if ($request->isXmlHttpRequest()) {
$chatForm->handleRequest($request);
$chatData = $chatForm->getData();
dump($chatData);
$elephantIOClient->emit('chat message', ['msg' => $chatData]);
}
$elephantIOClient->close();
return $this->render('chat/index.html.twig', [
'form' => $chatForm->createView(),
]);
}
我认为这是 url 的问题(谁看起来不错)谁不调用我的控制器但我不知道是什么。
我用 symfony 阅读了一些关于 ajax 的主题,它一直都像我做的那样。如果您有任何想法可以帮助我解决此问题。
谢谢
【问题讨论】:
-
您的代码到底有什么不适合的?您期望完成什么,却发生了什么?
-
代码正在运行。我希望得到我放在表单上的数据,但我得到的是我页面的源代码。我的控制台日志返回源代码,就像我的
data: $('#chat_message').val(),返回页面源代码
标签: javascript php ajax symfony