Vue打包前访问后台的CORS跨域问题及解决方案

                                                                                                                              作者:田超凡

                                                                                                                  时间:2019年9月4日

1.Vue打包前访问后台时的CORS跨域问题
前端报错:Access to XMLHttpRequest at ‘http://localhost:9090/guidance/findGuidancePage’ from origin ‘http://localhost:8000’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

解决办法:
(1).pom.xml新增CORS跨域过滤器依赖
<dependency>
            
    <groupId>com.thetransactioncompany</groupId>
            
    <artifactId>cors-filter</artifactId>
            
    <version>2.5</version>
        
</dependency>

(2).web.xml新增CORS过滤器
<!--跨域-->
  
<filter>
  
    <filter-name>corsFilter</filter-name>
  
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
  
</filter>
  
<filter-mapping>
  
    <filter-name>corsFilter</filter-name>
  
    <url-pattern>/*</url-pattern>
  
</filter-mapping>

备注:如果web.xml新增的CORS跨域过滤器没有效果,则直接使用以下全面的CORS跨域过滤器
<!--加入跨域过滤器配置-->
  
<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>

Logo

前往低代码交流专区

更多推荐