后端增加配置类解决跨域问题
1,第一种方式 过滤器
package com.skynet.wechat.wechat.common;
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 com.skynet.util.StringUtil;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.skynet.wechat.api.common.SysConfig;
import com.skynet.wechat.api.model.UserModel;
import com.skynet.wechat.wechat.service.IServiceReqLogService;
/**
*
* <p>Title: </p>
* <p>Description: 公共过滤器,处理跨域和日志记录</p>
*
* @author Torlay
* @version 1.00.00
* <pre>
* 修改记录:
* 版本号 修改人 修改日期 修改内容
*
*
*/
@Service("commonFilter")
public class CommonFilter implements Filter{
protected transient Logger logger = Logger.getLogger(this.getClass().getName());
@Autowired
private IServiceReqLogService serviceReqLogService;
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
try {
//增加跨域处理
HttpServletResponse resp = (HttpServletResponse) response;
resp.setHeader("Access-Control-Allow-Origin", "*");
//拦截请求日志
HttpServletRequest req = (HttpServletRequest) request;
logger.debug("11111>>>>========拦截请求日志=============>>>>>>>>"+request);
if(req != null ){
/*请求日志记录*/
serviceReqLogService.outTransactioninsert(req);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
chain.doFilter(request, response);
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
2,第二种方式
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("*") .allowCredentials(true) .maxAge(3600) .allowedHeaders("*"); } }
3. 过滤器配置
public class CrossDomainFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { String jsonCallback = ((HttpServletRequest) req).getParameter("jsonpCallback"); if (jsonCallback != null) { HttpServletResponse response = (HttpServletResponse) res; OutputStream os = response.getOutputStream(); os.write((jsonCallback + "(").getBytes()); chain.doFilter(req, res); os.write(")".getBytes()); } else { chain.doFilter(req, res); } } @Override public void destroy() { // TODO Auto-generated method stub } }