如何使用Jquery AJAX调用Spring控制器方法

时间:2011-02-05 20:53:12

标签: java jquery ajax spring spring-mvc

我有以下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");
    }
});

请帮我弄清楚为什么即使在单击按钮时调用ajax方法也没有调用Spring方法。我已经使用firebug逐步完成了脚本,它肯定会触及ajax函数。

4 个答案:

答案 0 :(得分:4)

首先,尝试查看在浏览器中手动点击URL时会发生什么

如果成功,请打开firebug中的请求跟踪,看看firefox是否实际点击了URL(以及响应中的内容)

答案 1 :(得分:1)

尝试将此添加到您的jquery

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

您将看到是否发生错误

答案 2 :(得分:1)

您在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");
    }
});

答案 3 :(得分:0)

是否可能发生服务器端异常,这就是您没有看到响应的原因。如果您有调试,请确保抛出异常和/或您有相同的日志。

你的评论也有点含糊不清是什么意思,即使调用了ajax methid,也没有调用spring methid。你能澄清一下吗?另外,如果firebug发出错误是什么错误,那么使用屏幕截图或seomthing也可以帮助调用firebug o / p ..