Symfony的路由AJAX GET方法(Symfony routing ajax get meth

2019-09-26 21:44发布

我路过AJAX GET参数,我的网址是这样的:

example.com/autocamplete?term=string

我想补充的路线为:

autocomplete:
    path:     /autocomplete?term={term}
    defaults: { _controller: CatalogWebBundle:Default:autocomplete }

但它的东西错了我的路线,因为我得到的错误:

GET http://127.0.0.1:8000/autocomplete?term=sdfsd 500 (Internal Server Error)

如何重写我的路线阿贾克斯获得patameters?

JS是:

<script type="text/javascript">
    $(function() {

        //autocomplete
        $("#search").autocomplete({
            source: "\/autocomplete",
            minLength: 1
        });

    });
</script>

Answer 1:

安装FOSJsRoutingBundle ,创建一个正确的路线,因为它是你的问题不正确。

所以,你应该做这样的事情:

加束JS(可在全球使用的基本模板):

<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>

配置路由(无QS):

autocomplete:
    path:     /autocomplete
    defaults:
        _controller: CatalogWebBundle:Default:autocomple
    options:
        expose: true

配置您的JS:

<script type="text/javascript">
    $(function() {

        //autocomplete
        $("#search").autocomplete({
            source: Routing.generate('autocomplete', { 'term': value });,
            minLength: 1
        });

    });
</script>


Answer 2:

除了(使用FOS JS路由)以上版本,如果你是“渲染”的JS函数文件,而无需任何“动态生成或路线”,你可以使用更简单的方法

{{ path('routeName', {'slug': slug}) }}

注意:你的情况-建立一个搜索-它不会工作



文章来源: Symfony routing ajax get method