跨域获取验证码的疑问

浏览器访问renren-fast站点,获取验证码:

1、http://localhost:88/api/captcha.jpg?uuid=4a495edf-6df1-4371-89cc-0828903517wz

2、http://localhost:8080/renren-fast/captcha.jpg?uuid=4a495edf-6df1-4371-89cc-0828903517rr

都可以得到验证码,第一个是gateway地址进行了转换,实际是转换2进行访问。

用vue登录页http://localhost:8001/#/login来访问也可以。

☆ 有一个疑问,为什么用vue登录页获取验证码的请求,实际也属于跨域请求,由地址http://localhost:8001/#/login 来访问http://localhost:8080/renren-fast/captcha.jpg?uuid=4a495edf-6df1-4371-89cc-0828903517rr

为什么可以访问成功?因为是GET方式请求吗,这个以后要研究问题所在?

开始我以为是renren-fast有跨域配置,但我屏蔽掉以后还是可以访问。

 

☆☆ 网管项目的跨域配置文件:

@Configuration
public class MymallmallCorsConfiguration {

@Bean
public CorsWebFilter corsWebFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

CorsConfiguration corsConfiguration = new CorsConfiguration();

//1、配置跨域
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.setAllowCredentials(true);

source.registerCorsConfiguration("/**",corsConfiguration);
return new CorsWebFilter(source);
}
}

☆☆ renren-fast项目自身的跨域配置,在整个的mymall项目中被屏蔽,只保留网关中的一份,
@Configuration
public class CorsConfig implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.maxAge(3600);
}
// 允许跨域的响应头配置统一放在网管的配置文件中
}

跨域获取验证码的疑问

上一篇:puppet(五)——puppet使用基础


下一篇:npm uninstall vue-cli -g执行完毕,仍然无法卸载的最有效的解决方法