【发布时间】:2015-10-21 16:03:30
【问题描述】:
几天来,当我将 Spring Security 集成到我的 Spring MVC Web 应用程序中时,我遇到了一个问题。在客户端,我有一些 JavaScript 代码,它会生成一个带有给定 url 的 post 请求,然后将其映射到服务器端的特定控制器,以便执行适当的代码。我收到以下错误:
“org.springframework.web.servlet.PageNotFound - 在名为 'appServlet' 的 DispatcherServlet 中找不到带有 URI [/403] 的 HTTP 请求的映射”
我们将不胜感激。
我将以下内容添加到我的 web.xml 以激活 Spring Security:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-security.xml,
/WEB-INF/spring-database.xml
</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
JavaScript:
$.ajax({
url: "/assign/saveAssignment",
data: {
"taskID": taskID,
"userID": userID,
"isAssigned": !isActive
},
type: "POST",
success: function () {
console.log("Saved assignment.");
}
})
控制器:
@RequestMapping(value = "/assign/saveAssignment", method = RequestMethod.POST)
public HttpHeaders saveAssignment(@RequestParam String taskID, @RequestParam String userID, @RequestParam String isAssigned) {
...
}
Servlet 定义(在 web.xml 中)
...
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
...
【问题讨论】:
标签: javascript spring-mvc spring-security