跨域
拦截器:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* jsonp post提交处理拦截器
*/
public class PostRequestInterceptor implements HandlerInterceptor {
private Logger logger = LoggerFactory.getLogger(PostRequestInterceptor.class);
private String INDEX_PAGE;
public PostRequestInterceptor(String indexPage) {
this.INDEX_PAGE = indexPage;
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
String url = request.getRequestURI();
//logger.info("Parameter : {}",request.getParameterMap());
//logger.info("PostRequestInterceptor.preHandle execute url| " + url + " | ------------- end");
//response.setContentType("text/html;charset=UTF-8");
response.setHeader("Access-Control-Allow-Credentials", "true");
//(request.getHeader("Origin").contains("127")) {
String origin = request.getHeader("Origin");
// if (StringUtil.isNotBlank(INDEX_PAGE)) {
// origin = origin + "," + INDEX_PAGE;
// }
response.setHeader("Access-Control-Allow-Origin", origin);
//}
response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers,X-Requested-With,X_Requested_With");
response.setHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS");
// response.addHeader("Access-Control-Max-Age", "1000");
if ("IE".equals(request.getParameter("type"))) {
response.addHeader("XDomainRequestAllowed", "1");
}
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
}
添加拦截器:
import javax.annotation.PostConstruct;
import PostRequestInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Autowired
private RequestMappingHandlerAdapter handlerAdapter;
@Value("${constant.indexPage}")
private String indexPage;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new PostRequestInterceptor(indexPage)).addPathPatterns("/**");
super.addInterceptors(registry);
}
/**
* 增加字符串转日期的功能
*/
@PostConstruct
public void initEditableValidation() {
ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) handlerAdapter
.getWebBindingInitializer();
if (initializer.getConversionService() != null) {
GenericConversionService genericConversionService = (GenericConversionService) initializer
.getConversionService();
genericConversionService.addConverter(new WebDateConverter());
}
}
}

浙公网安备 33010602011771号