关于cors跨域无法访问问题

新手上路,请多包涵

我采用springcloud架构,前后端分离开发,项目报跨域错误,请大神帮我看看
报错信息图片描述

网关配置

@Configuration
public class GlobalCorsConfig {
    @Bean
    public CorsFilter corsFilter() {
        //1.添加CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        //1) 允许的域,不要写*,否则cookie就无法使用了
        config.addAllowedOrigin("http://manage.utmi.com");
        config.addAllowedOrigin("http://api.utmi.com");
        config.addAllowedOrigin("http://www.utmianimal.com");
        //2) 是否发送Cookie信息
        config.setAllowCredentials(true);
        //3) 允许的请求方式
        config.addAllowedMethod("OPTIONS");
        config.addAllowedMethod("HEAD");
        config.addAllowedMethod("GET");
        config.addAllowedMethod("PUT");
        config.addAllowedMethod("POST");
        config.addAllowedMethod("DELETE");
        config.addAllowedMethod("PATCH");
        // 4)允许的头信息
        config.addAllowedHeader("*");
        // 5) 有效时长
        config.setMaxAge(3600L);
        //2.添加映射路径,我们拦截一切请求
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);

        //3.返回新的CorsFilter.
        return new CorsFilter(configSource);
    }
}```

前端项目配置

axios.defaults.baseURL = "http://api.utmi.com/api";
axios.defaults.timeout = 5000;
axios.defaults.withCredentials = true

nginx配置

server {

  listen    9003;
  server_name   www.utmianimal.com;

  location / {
      proxy_pass http://192.168.0.89:9003;
  }

}

server {
    listen       80;
    server_name  www.utmianimal.com;

    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


    location / {
  proxy_pass http://192.168.0.89:9003;
  proxy_connect_timeout 600;
  proxy_read_timeout 600;
    }
}
server {
    listen       80;
    server_name  api.utmi.com;

    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#upload api
location /api/upload {

  proxy_pass http://192.168.0.89:8085;
  proxy_connect_timeout 600;
  proxy_read_timeout 600;
  
  rewrite "^/api/(.*)$" /$1 break; 
    } 

    location / {
      proxy_pass http://192.168.0.89:10011;
      proxy_connect_timeout 600;
      proxy_read_timeout 600;
    }
}
include /etc/nginx/conf.d/*.conf;

}

阅读 2.3k
2 个回答

网关是使用的gateway吗?如果是gateway的话直接在配置文件里配置就好

spring:
  application:
    name: spring-gateway
  cloud:
    gateway:
      globalcors:
        cors-configurations:
          '[/**]':
            allowedOrigins: "*"
            allowedMethods: "*"
            allowCredentials: true

图片描述

这是同样的一个项目另外一个服务
图片描述

问题解决了,因为在这个服务引入了一个上传服务的依赖,目前还不知道为何会出现这种情况

<!--<dependency>-->
            <!--<groupId>com.utmi.parent</groupId>-->
            <!--<artifactId>utmi-upload</artifactId>-->
            <!--<version>1.0.0</version>-->
<!--</dependency>-->
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题