解决跨域的三种方式nginx
- Jsonp:基于script中的src属性实现ajax
- nginx:反向代理(部署):利用nginx反向代理把跨域为不跨域,支持各类请求方式spring
- 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); } }
但即便都准备好了,测试的时候仍是403cookie
缘由是请求路径不能再是localhost了,要修改成127.0.0.1mvc