求可以解决cors 跨域的方法!!!

尝试过很多种cors,可是都不行。
加过filter,在filter里面设置各种header。不行!
在web.xml里面加过corsfilter和引入jar包。不行!
用Springboot的,加CorsConfig的,在里面加标签的,设置的。不行!
结果还是没解决这个跨域的问题,纠结好久了~
有没有哪位大神亲身试过用cors的,并成功解决跨域问题,求帮助!!!
(希望可以给出比较具体代码或思路,谢谢!)

如果不考虑IE8和IE8以下版本,那么在 web.xml里面加过corsfilter和引入jar包 ,是个很不错的选择 。
我的配置 :

<!-- cors filter begin 利用请求头处理跨域问题,不支持IE8及以下版本-->

CORS
com.thetransactioncompany.cors.CORSFilter

cors.allowOrigin



cors.supportedMethods
GET, POST, HEAD, PUT, DELETE


cors.supportedHeaders
Accept, Origin, X-Requested-With, Content-Type, Last-Modified


cors.exposedHeaders
Set-Cookie


cors.supportsCredentials
true



CORS
/

同时,在请求端 ,你需要添加参数 crossDomain:true; 而且访问需要加入http请求头。 如下
图片说明

  <!--  cors filter begin 利用请求头处理跨域问题,不支持IE8及以下版本-->
<filter>
        <filter-name>CORS</filter-name>
        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
    <init-param>
            <param-name>cors.allowOrigin</param-name>
            <param-value>*</param-value>
    </init-param>
    <init-param>
            <param-name>cors.supportedMethods</param-name>
            <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
    </init-param>
    <init-param>
            <param-name>cors.supportedHeaders</param-name>
            <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
    </init-param>
    <init-param>
            <param-name>cors.exposedHeaders</param-name>
            <param-value>Set-Cookie</param-value>
    </init-param>
    <init-param>
            <param-name>cors.supportsCredentials</param-name>
            <param-value>true</param-value>
    </init-param>
</filter>
  <filter-mapping>
        <filter-name>CORS</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>

1:cors配置允许跨域

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.util.ArrayList;
import java.util.List;
/**

  • Created by Msater Zg on 2017/4/3.
    /
    @Configuration
    public class CorsConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/
    *")
    .allowedOrigins("*")
    .allowCredentials(true)
    .allowedMethods("GET", "POST", "DELETE", "PUT")
    .maxAge(3600);
    }
    private CorsConfiguration buildConfig() {
    CorsConfiguration corsConfiguration = new CorsConfiguration();
    List list = new ArrayList<>();
    list.add("*");
    corsConfiguration.setAllowedOrigins(list);
    corsConfiguration.addAllowedOrigin("*"); // 1
    corsConfiguration.addAllowedHeader("*"); // 2
    corsConfiguration.addAllowedMethod("*"); // 3
    return corsConfiguration;
    }
    @Bean
    public CorsFilter corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", buildConfig()); // 4

    return new CorsFilter(source);
    

    }
    }
    2:拦截器拦截方法获取token
    1:拦截器配置
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    /**

  • Created by Msater Zg on 2017/4/5.

  • 拦截器
    /
    public class ApiInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    System.out.println("拦截了");
    return true;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    System.out.println("拦截了");
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    System.out.println("拦截了");
    }
    }
    2: 拦截器管理工具
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    /
    *

  • Created by Msater Zg on 2017/4/5.

  • 拦截器管理工具
    /
    @Configuration
    public class MyWebAppConfigurer extends WebMvcConfigurerAdapter {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    // 多个拦截器组成一个拦截器链
    // addPathPatterns 用于添加拦截规则
    // excludePathPatterns 用户排除拦截
    registry.addInterceptor(new ApiInterceptor()).addPathPatterns("/
    *"); //对来自/user/** 这个链接来的请求进行拦截
    super.addInterceptors(registry);
    }
    }