我想知道如何在不重新加载页面的情况下在Symfony2中执行异步操作。我在“书”和“食谱”上找不到任何关于它的信息。 (我发现只有2个关于hinclude.js的句子?)
我想:在不重新加载页面的情况下发送表单(保存到数据库中),重新加载部分页面等。
答案 0 :(得分:1)
控制器功能的粗略模板 它包括检查ajax是否只返回JsonResponse。
public function ajaxAction(Request $request)
{
if (! $request->isXmlHttpRequest()) {
throw new \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException();
}
// do whatever
$rtn = array('foo' => 'bar');
return new \Symfony\Component\HttpFoundation\JsonResponse($rtn);
}
标准的ajax代码放入视图;
<div id="my-foo">bob</div>
<script type="text/javascript">
var jqxhr = $.ajax({
url: '{{ path('route_to_controller_function') }}', // path should be in your routes.php
type: 'post',
data: {param1: 'foo'}, // if required
})
.done(function(data) {
// do whatever you want
// for example write foo to div
$('#my-foo').html(data.foo);
})
.fail(function() {
alert( "error" );
});
</script>