前后端分离开发中一个小问题(集成403后跨域问题)

解决跨域的三种方式

 

- Jsonp:基于script中的src属性实现

- nginx:反向代理(部署):利用nginx反向代理把跨域为不跨域,支持各种请求方式

- CORS:浏览器会将ajax请求分为两类,其处理方案略有差异:简单请求、特殊请求。(类似于中间商,将请求处理过了,再分配)

这里我是用的CORS,因为springmvc中已经集成了:

@Configuration
public class GlobalCorsConfig {
    @Bean
    public CorsFilter corsFilter() {
        //1.添加CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        //1) 允许的域,不要写*,否则cookie就无法使用了
        config.addAllowedOrigin("http://127.0.0.1:8080");
        //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("*");
        //2.添加映射路径,我们拦截一切请求
        UrlBasedCorsConfigurationSource configSource = new
                UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);
        //3.返回新的CorsFilter.
        return new CorsFilter(configSource);
    }
}

但即使都准备好了,测试的时候还是403

原因是请求路径不能再是localhost了,要修改为127.0.0.1

 

posted @ 2019-05-09 09:28  三只小菜鸟  阅读(1779)  评论(0编辑  收藏  举报