Я пытаюсь получить список городов, отправив название штата через Ajax в моем проекте SpringMVC 3.0.
Для этой цели я использовал следующий вызов (используя jQuery) в моем JSP:
<script type="text/javascript">
function getCities() {
jq(function() {
jq.post("getCities.html",
{ stateSelect: jq("#stateSelect").val()},
function(data){
jq("#cities").replaceWith('<span id="cities">Testing</span>');
});
});
}
</script>
А вот мой код контроллера:
@RequestMapping(value = "/getCities", method = RequestMethod.POST)
public @ResponseBody List<StateNames> getCities(@RequestParam(value="stateSelect", required=true) String stateName,
Model model) {
// Delegate to service to do the actual adding
List<StateNames> listStates = myService.listCityNames(stateName);
// @ResponseBody will automatically convert the returned value into JSON format
// You must have Jackson in your classpath
return listStates;
}
Но я получаю сообщение об ошибке HTTP 406, заявляющее следующее при его запуске:
406 Недопустимо
Запрашиваемый ресурс способен генерировать контент, неприемлемый только в соответствии с заголовками Accept, отправленными в запросе.
Я использовал Джексона в моих зависимостях Maven и определил в моем файле контекста.
Я много гуглил и думаю, проблема в том, что @ResponseBody не конвертирует мой список автоматически в соответствующий объект JSON.
Мой Firebug говорит:
Response Headers
Server Apache-Coyote/1.1
Content-Type text/html;charset=utf-8
Content-Length 1070
Date Sat, 12 Feb 2011 13:09:44 GMT
Request Headers
Host localhost:8080
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer http://localhost:8080/MyApplication/
Content-Length 17
Cookie JSESSIONID=640868A479C40792F8AB3DE118AF12E0
Pragma no-cache
Cache-Control no-cache
Пожалуйста, ведите меня. Что я делаю неправильно?? HELP !!