Как мне вызвать метод контроллера Spring с Jquery AJAX - PullRequest
3 голосов
/ 05 февраля 2011

У меня есть следующий Spring Controller

@Controller
@RequestMapping("/accreq")

со следующим отображением

@RequestMapping(value = "/defRoles", method=RequestMethod.GET)
public @ResponseBody String loadDefaultRoles(
    @RequestParam(value="idGroup", required=false) String groupID
    throws ServletException{

Я пытаюсь вызвать этот метод с помощью следующего jquery ajax

$.ajax({
type: 'GET',
url: '/accreq/defRoles',
data: {idGroup: $('#infoGroup').val() },
success: function() {
    alert("success");
    }
});

Пожалуйста, помогите мне выяснить, почему метод Spring не вызывается, хотя метод ajax вызывается при нажатии кнопки. Я прошел через скрипт с firebug, и он определенно выполняет функцию ajax.

Ответы [ 4 ]

4 голосов
/ 06 февраля 2011

Сначала попробуйте посмотреть, что произойдет, если вы вручную нажмете на URL в браузере.

Если это успешно, включите отслеживание запросов в firebug и посмотрите, действительно ли Firefox обнаруживает URL (и что говорит ответ)

1 голос
/ 06 февраля 2011

Какой шаблон вы используете в своем файле web.xml?Найдите тег и посмотрите, какой шаблон вы используете.

Например, если вы используете:

<servlet-mapping>
  <servlet-name>spring</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>

, вы должны использовать что-то вроде этого:

$.ajax({
type: 'GET',
url: '/accreq/defRoles.html',
data: {idGroup: $('#infoGroup').val() },
success: function() {
    alert("success");
    }
});
1 голос
/ 06 февраля 2011

попробуйте добавить это в свой jquery

error: function(jqXHR, textStatus, errorThrown) {
    alert("error:" + textStatus + " exception:" + errorThrown);
    }
}

, и вы увидите, если произойдет ошибка

0 голосов
/ 06 февраля 2011

Возможно ли возникновение исключительной ситуации на стороне сервера, и поэтому вы не видите ответ.Если у вас есть отладка, убедитесь, что ваши исключения выброшены и / или у вас есть журнал того же самого.

Также ваш комментарий довольно двусмысленный, что вы имеете в виду, когда метид метана не вызывается, хотя метид аякса называется.Не могли бы вы уточнить.Кроме того, что может помочь - firebug o / p вызова со снимком экрана или что-то вроде того ... также, если firebug выдает ошибку, что это за ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...