Symfony routing ajax get method

Я передаю параметры ajax GET, мой url выглядит так:

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) 

Как переписать мой маршрут на ajax получить patameters?

JS:

 <script type="text/javascript"> $(function() { //autocomplete $("#search").autocomplete({ source: "\/autocomplete", minLength: 1 }); }); </script> 

Установите 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 по 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> 

помимо вышеприведенной версии (с использованием FOS JS Routing), если вы «визуализируете» файлы функций JS без необходимости «динамической генерации или маршрутов», вы можете использовать более простой подход

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

Примечание: в вашем случае – создание поиска – оно не будет работать