zoukankan      html  css  js  c++  java
  • 跨域

    拦截器:

    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());
    		}
    
    	}
    
    }
  • 相关阅读:
    电脑一族,打电脑时候的健康的坐姿
    根据时间戳,增量同步数据的解决办法
    写在前面
    《T-GCN: A Temporal Graph Convolutional Network for Traffic Prediction》 论文解读
    关于Graph Convolutional Network的初步理解
    图形学_opengl纹理映射
    推荐算法_CIKM-2019-AnalytiCup 冠军源码解读_2
    推荐算法_CIKM-2019-AnalytiCup 冠军源码解读
    leetcode_雇佣 K 名工人的最低成本(优先级队列,堆排序)
    图形学_Bezier曲线
  • 原文地址:https://www.cnblogs.com/wanhua-wu/p/10733930.html
Copyright © 2011-2022 走看看