使用CORS实现JavaWeb跨域请求问题的方法
之前用jsonp解决跨域问题,现在用CORS实现跨域请求解决java跨域问题:
主要代码如下
packagecom.hy.fliter; importjava.io.IOException; importjavax.servlet.Filter; importjavax.servlet.FilterChain; importjavax.servlet.FilterConfig; importjavax.servlet.ServletException; importjavax.servlet.ServletRequest; importjavax.servlet.ServletResponse; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importorg.apache.commons.httpclient.HttpStatus; /** *CreatedbyWangShuaion2016/7/30. */ publicclassCorsFilterimplementsFilter{ @Override publicvoidinit(FilterConfigfilterConfig)throwsServletException{} @Override publicvoiddoFilter(ServletRequestservletRequest,ServletResponseservletResponse,FilterChainfilterChain)throwsIOException,ServletException{ HttpServletResponseresponse=(HttpServletResponse)servletResponse; HttpServletRequestrequest=(HttpServletRequest)servletRequest; //指定允许其他域名访问 response.setHeader("Access-Control-Allow-Origin","*"); //响应类型 response.setHeader("Access-Control-Allow-Methods","POST,GET,DELETE,OPTIONS,DELETE"); //响应头设置 response.setHeader("Access-Control-Allow-Headers","Content-Type,x-requested-with,X-Custom-Header,HaiYi-Access-Token"); if("OPTIONS".equals(request.getMethod())){ response.setStatus(HttpStatus.SC_NO_CONTENT); } filterChain.doFilter(servletRequest,servletResponse); } @Override publicvoiddestroy(){} }
web.xml代码如下配置
<filter> <filter-name>cors</filter-name> <filter-class>com.hy.fliter.CorsFilter</filter-class> </filter> <filter-mapping> <filter-name>cors</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
以上所述是小编给大家介绍的使用CORS实现JavaWeb跨域请求问题的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!