我正在尝试在Spring 3中设置一个控制器来处理来自前端的AJAX请求。我看了一下这个页面,它简洁而简单地解释了它:http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/
我能够让示例应用程序正常工作。但是,在我自己的应用程序中,当我向应该的网址发出请求时,它才会获得404;
这是我的Java代码(现在只需要一个String参数并返回它):
@RequestMapping(value="/test", method=RequestMethod.GET)
public @ResponseBody String test(@RequestParam String teacherId) {
return teacherId;
}
当我尝试通过jQuery的getJSON方法调用它时,我得到了404。
jQuery.getJSON("test", {teacherId:"123"});
我的app-servlet.xml中有标签,Maven正在接收3个Jackson jar(核心,jaxrs和mapper,所有版本1.8.5)并将它们打包到webapp中。我唯一能想到的可能是Spring Security不允许访问此路径,但是应该让已经过身份验证的用户可以访问此属性: intercept-url pattern =“/ **”access =“ROLE_USER”
所以我不确定我错过了什么。
答案 0 :(得分:0)
我从这篇文章中发现了问题 - No mapping found for HTTP request with URI [/WEB-INF/pages/apiForm.jsp]
如果我在servlet-mapping特殊中添加一个扩展名给DispatcherServlet,如下所示:
<servlet-mapping>
<servlet-name>palladium</servlet-name>
<url-pattern>*.json</url-pattern>
</servlet-mapping>
然后将扩展添加到请求映射注释:
@RequestMapping(value="/test.json", method=RequestMethod.GET)
事情很顺利。