Задать вопрос
@Pirojochek

Что сделать чтобы заработал JSON в jQuery (Spring)?

Доброго времени суток всем :)

Пытаюсь сделать запрос ajax JSON в jQuery, цель-получить коллекцию элементов, но почему-то он не возвращает ничего после success:function(data), перепробовала все браузеры и подключила библиотеки json, не помогло. Если dataType:text, то приходит код страницы с которой был отправлен запрос.

Я уже весь инет изучила на данную тему, но то что там предлагают у меня уже все есть, поэтому допускаю что возможно у меня что-то не установлено или установлено криво и из-за этого не работает. Возможно у кого-то была похожая проблемка, если кто-то сможет подсказать как исправить, буду благодарна за помощь:)
function getData(type) {
	  var pagelink = "getData/";
	   var url = pagelink +type+ ".html";
   $.ajax({
      url : url,
      method : "get",
   contentType:"application/json",
dataType : "json",
     async: false,  
   success : function(data) {
	   alert("success");}});

@RequestMapping(value = "/", method = RequestMethod.GET)
	 public String home( Model model) {
	  return "templeName";
	 }
	@RequestMapping(value = "/getData/{type}", method = RequestMethod.GET)
	  public @ResponseBody  List<String> showData(Model model, @PathVariable("type") String type) {
	    List<String> list= new ArrayList<String>(); 
	   list.add("2");
	    list.add("1");
	    return list;
  • Вопрос задан
  • 3538 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Владимир Смирнов К ответам на вопрос (5)
@bobzer
Java EE Developer
Скопировал Ваш код почти один-в-один, но проблему воспроизвести не удалось. Всё работает как и надо: указал text - получил строку, указал json - получил Array. Вот мой код:
var url = "bean/getData";
                    $.ajax({
                        url: url,
                        method: "get",
                        contentType: "application/json",
                        dataType: "json",
                        async: false,
                        success: function (data) {
                            alert(data);
                        }
                    });


@RequestMapping(value = "/bean")
public class Controller {

    @RequestMapping(value = "/getData", method = RequestMethod.GET)
    public
        @ResponseBody
        List<String> showData() {
        List<String> list = new ArrayList<String>();
        list.add("2");
        list.add("1");
        return list;
    }
}

Попробуйте скопировать как есть себе и добиться работоспособности. Используйте отладчик браузера для просмотра Сети и JS-исходников. Если заработает, пошагово добавляйте свою специфику, проверяя работоспособность после каждого изменения. Вполне вероятно, что Вы внесли изменения сразу в нескольких местах, и все сломалось вовсе не потому, что это было переключение на json. Я в своем примере просто меняю dataType между text и json и сразу получаю в data соответственно строку или массив.
Ответ написан