Symfony2和AJAX

时间:2014-10-03 15:20:33

标签: javascript ajax symfony

我想知道如何在不重新加载页面的情况下在Symfony2中执行异步操作。我在“书”和“食谱”上找不到任何关于它的信息。 (我发现只有2个关于hinclude.js的句子?)

我想:在不重新加载页面的情况下发送表单(保存到数据库中),重新加载部分页面等。

1 个答案:

答案 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>