http://www.tuicool.com/articles/3UBzIbb
spring mvc 支持options方法
增加如下配置:
<init-param> <param-name>dispatchOptionsRequest</param-name> <param-value>true</param-value> </init-param>
加在springdispatcher 里面
<servlet> <servlet-name>springdispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMvc-viewresolver.xml</param-value> </init-param> <init-param> <param-name>dispatchOptionsRequest</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
过滤器代码
package com.allcam.andedu.abc.filter;
import java.io.IOException; import java.util.ArrayList; import java.util.List;
import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import com.allcam.andedu.abc.pojo.UserCache;
public class SystemFilter implements Filter { private static final List<String> STRINGS = new ArrayList<String>(); private static final String UTF8_CODE = "UTF-8"; static { STRINGS.add("jsp"); STRINGS.add("js"); STRINGS.add("css"); STRINGS.add("images"); STRINGS.add("backRes"); STRINGS.add("anon"); STRINGS.add("ckplayer"); STRINGS.add("htm"); STRINGS.add("ico"); STRINGS.add("uploadImage"); } @Override public void destroy() { } @Override public void doFilter(ServletRequest servletRequest,ServletResponse servletResponse,FilterChain chain) throws IOException,ServletException { HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletResponse response = (HttpServletResponse)servletResponse; // 指定允许其他域名访问 response.setHeader("Access-Control-Allow-Origin","*"); // 响应类型 response.setHeader("Access-Control-Allow-Methods","POST,GET,OPTIONS,DELETE"); // 响应头设置 response.setHeader("Access-Control-Allow-Headers","Content-Type,x-requested-with,X-Custom-Header"); if ("OPTIONS".equals(request.getMethod())) { response.setStatus(204); } // response.setHeader("Access-Control-Max-Age","3600"); request.setCharacterEncoding(UTF8_CODE); response.setCharacterEncoding(UTF8_CODE); chain.doFilter(request,response); } @Override public void init(FilterConfig filterConfig) throws ServletException { } public boolean isAuth(String url) { for (String string : STRINGS) { if (url.contains(string)) { return true; } } return false; } } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|