前端跨域+携带cookie
什么是域
维基百科对域名的解释是:互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。
域的组成:

什么是跨域?
当一个域去请求另一个域下的资源时就叫跨域。
什么情况下会产生跨域问题?
- 同一域名,不同端口
http://127.0.0.1:8080
http://127.0.0.1:7070
- 同一域名,不同协议
http://127.0.0.1/a
https://127.0.0.1/b
- 域名和对应的ip地址
http://127.0.0.1/b
http://localhost/a
- 不同域名
http://www.domain1.com/a
http://www.domain2.com/b
如何解决?
- 跨域资源共享(CORS)
//从http://127.0.0.1:8080/home ---请求---> http://127.0.0.1:7777/login//前端使用axios发送请求
login() {axios.post('http://127.0.0.1:7777/login', {'username': this.username,'password': this.password}, {withCredentials: true //如果需要携带cookie,就加上这配置}).then(res => {console.log(res);})
}//后端
@Configuration
public class corsConfig implements WebMvcConfigurer{@Beanpublic WebMvcConfigurer corsConfigurer(){return new WebMvcConfigurer() {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("http://127.0.0.1:8080","http://127.0.0.1:3333") //可以配置多个白名单.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") //允许跨域的请求方法.maxAge(3600) //预检查请求有效期.allowCredentials(true); //如果需要携带cookie就加上此配置}};}
}
参考链接:
什么是预检查请求?
前端常见跨域解决方案
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
