问题
I pass by ajax GET parameters, my url looks like:
example.com/autocamplete?term=string
I add route for that:
autocomplete:
path: /autocomplete?term={term}
defaults: { _controller: CatalogWebBundle:Default:autocomplete }
But it something wrong with my route, because I get error:
GET http://127.0.0.1:8000/autocomplete?term=sdfsd 500 (Internal Server Error)
How to rewrite my route to ajax get patameters ?
JS is:
$(function() {
//autocomplete
$("#search").autocomplete({
source: "\/autocomplete",
minLength: 1
});
});
回答1:
Install FOSJsRoutingBundle, create a correct route as it is incorrect in your question.
So, you should do something like this:
add bundle JS (may be in base template for global usage):
configure routing (without QS):
autocomplete:
path: /autocomplete
defaults:
_controller: CatalogWebBundle:Default:autocomple
options:
expose: true
configure your JS:
$(function() {
//autocomplete
$("#search").autocomplete({
source: Routing.generate('autocomplete', { 'term': value });,
minLength: 1
});
});
回答2:
besides the above version (using FOS JS Routing),
if you are "rendering" the JS function files without any need for "dynamic generation or routes" you can use a more simple approach
{{ path('routeName', {'slug': slug}) }}
Note: in your case - building a search - it won't work
来源:https://stackoverflow.com/questions/27089855/symfony-routing-ajax-get-method