1.这个方法不太妥当,不够安全,需要自己去写一个拦截器
web.xml配置指向拦截器
JsonFormat
com.qianmo.qmyj.common.JsonFilter
JsonFormat
*.do
packagecom.qianmo.qmyj.common;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Component;import javax.servlet.*;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;/*** FileName: ${NAME}
* Author: anpei
* Date: 2017/5/16
* Description:
* History:*/@Componentpublic class JsonFilter implementsFilter {private Logger logger =LoggerFactory.getLogger(getClass());public voiddestroy() {
}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throwsServletException, IOException {
HttpServletRequest request=(HttpServletRequest) req;
HttpServletResponse response=(HttpServletResponse) resp;
logger.debug("------->受理HTTP请求,方式为:" + ((HttpServletRequest) req).getMethod() + "
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/json");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT,HEAD");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers","X-Requested-With,Content-Type");
response.setHeader("Access-Control-Allow-Credentials", "true");//response.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");//String curOrigin = request.getHeader("Origin");//if (curOrigin != null) {//for (int i = 0; i < originProperties.length; i++) {//logger.debug("-------->允许跨域访问的来源是:" + originProperties[i] + "
chain.doFilter(req, resp);
}public void init(FilterConfig config) throwsServletException {
}
}
2.还有一个办法,我在eclipse里使用,是没有问题的,不过不知道为什么在idea里总是报错,因为时间关系,我也没深究,选择了上面的解决方法,也贴在下面吧。
----------------------web.xml-------------------------------------------------
CORS
com.thetransactioncompany.cors.CORSFilter
CORS
/*
------------------------util工具类(CorsConfig)----------------------------------------
packagecom.commerce.utils;//允许ajax跨域请求
importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.cors.CorsConfiguration;importorg.springframework.web.cors.UrlBasedCorsConfigurationSource;importorg.springframework.web.filter.CorsFilter;
@Configurationpublic classCorsConfig {privateCorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration= newCorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); //1
corsConfiguration.addAllowedHeader("*"); //2
corsConfiguration.addAllowedMethod("*"); //3
returncorsConfiguration;
}
@BeanpublicCorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source= newUrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); //4
return newCorsFilter(source);
}
}
引入两个jar
-------------------------pom.xml-------------------------------
com.github.pagehelper
pagehelper
5.0.0
com.thetransactioncompany
cors-filter
2.5
packagecom.commerce.utils;//允许ajax跨域请求
importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.cors.CorsConfiguration;importorg.springframework.web.cors.UrlBasedCorsConfigurationSource;importorg.springframework.web.filter.CorsFilter;
@Configurationpublic classCorsConfig {privateCorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration= newCorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); //1
corsConfiguration.addAllowedHeader("*"); //2
corsConfiguration.addAllowedMethod("*"); //3
returncorsConfiguration;
}
@BeanpublicCorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source= newUrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); //4
return newCorsFilter(source);
}
}
原文:http://www.cnblogs.com/anpieBlog/p/6880061.html