我路过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>
安装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>
除了(使用FOS JS路由)以上版本,如果你是“渲染”的JS函数文件,而无需任何“动态生成或路线”,你可以使用更简单的方法
{{ path('routeName', {'slug': slug}) }}
注意:你的情况-建立一个搜索-它不会工作