springMvc跨域
2015-10-17 11:02
429 查看
代码:
然后是配置文件:
然后就可以ajax跨域请求了。
ajax请求:
package com.***.filter; import java.io.IOException; 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 org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @Component public class SimpleCORSFilter implements Filter { private static Logger log = LoggerFactory.getLogger(SimpleCORSFilter.class); private static final String ORIGIN = "Origin"; private static final String OPTIONS = "OPTIONS"; private static final String OK = "OK"; public void destroy() { } public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse; if (httpServletRequest.getHeader(ORIGIN) != null) { String origin = httpServletRequest.getHeader(ORIGIN); httpServletResponse.setHeader("Access-Control-Allow-Origin", origin); httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); httpServletResponse.setHeader("Access-Control-Max-Age", "3600"); httpServletResponse.setHeader("Access-Control-Allow-Headers", "Accept-Language,Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization,X-Filename,Content-Disposition,Content-Length"); // Allow more than the 6 default headers to be returned, as the // content length is required for a download file request to get the // file size httpServletResponse.setHeader("Access-Control-Expose-Headers", "Accept-Language,Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization,X-Filename,Content-Disposition,Content-Length"); } if (httpServletRequest.getMethod().equals(OPTIONS)) { try { httpServletResponse.getWriter().print(OK); httpServletResponse.getWriter().flush(); } catch (IOException e) { log.error("doFilter错误",e); } } else { filterChain.doFilter(servletRequest, servletResponse); } } public void init(FilterConfig filterConfig) { } }
然后是配置文件:
<filter> <filter-name>SimpleCORSFilter</filter-name> <filter-class>com.leju001.filter.SimpleCORSFilter</filter-class> <async-supported>true</async-supported> </filter> <filter-mapping> <filter-name>SimpleCORSFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然后就可以ajax跨域请求了。
ajax请求:
$.ajax({ type: "POST", url: baseUrlconmon + "/service/list", data: JSON.stringify(parameter), dataType: "json", contentType: "application/json;charset=UTF-8", success: function(result) { if (result.status == 2000) { var data = result.data; console.log(data); } else { alert(result.data.errorDes); } } });
相关文章推荐
- The type org.springframework.beans.BeansException cannot be resolved. It is indirectly referenced fr
- 浅析Java入门教程之字符常量
- java 中变量存储位置的区别
- java 基础知识
- 浅析JAVA中Str类型与in类型t之间转换
- Java虚拟机中栈,栈帧,局部变量表的概念和特征。
- JAVA下的json构造和解析工具
- 谈谈java虚拟机中的参数。
- 安卓Eclipse如何快速修改工程名及包名
- 谈谈Java技术优化的相关信息
- Java中的Unix时间转换
- 韩顺平.循序渐进学.java.从入门到精通(二)
- 浅谈在JAVA中使用接口引用实现类
- eclipse mat插件本地安装
- java作业3
- java.sql.SQLException: ORA-00911: 无效字符 解决方案
- 浅谈Java虚拟机的工作模式Client和Server。
- java——static
- 分享java类的扫描代码
- java中两个double类型数据的大小