tomcat跨域配置
1.web.xml
配置web.xml过滤器
<filter>
<filter-name>CharsetEncodingFilter</filter-name>
<filter-class>inteceptor.CharsetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.inteceptor.CharsetEncodingFilter
根据web.xml中配置对应路径的过滤器类
package inteceptor;
import java.io.IOException;
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 org.springframework.web.context.WebApplicationContext;
public class CharsetEncodingFilter implements Filter {
private String encoding = null;
/*
* 注销函数
*/
public void destroy() {
encoding = null;
}
/*
* 过滤器操作的编码统一处理
*/
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
//跨域
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Max-Age", "7200");
filterChain.doFilter(request, response);
}
/*
* 完成过滤器编码的初始化操作
*/
public void init(FilterConfig filterConfig) throws ServletException {
encoding = filterConfig.getInitParameter("encoding");
}
}
3.ajax
前端ajax全局配置属性,所有ajax请求都要配置这几个值
$(function(){
// 设置ajax全局配置
$.ajaxSetup({
xhrFields:{
withCredentials: true
},
crossDomain:true
});
});