前后分离之zuul过滤器处理跨域
刚毕业的应届小白一枚
最近想要自己熟悉一下最近流行的web技术
打算用 spring cloud +vue3 +iview 搭建一个前后分离的项目玩玩
下面是项目地址:
https://github.com/quaint-ai/Vue-SpringCloud-CMS
有一个simple-v1.0 分支,是一个简单的项目结构demo,感兴趣的可以clone到本地尝试一下。有疑问欢迎留言,一起成长。
最近两天遇到了前端请求后端的跨域问题,传统的jsonp不能满足更多的请求方式,因此了解一下cors的方式跨域是必要的。
简要了解cors的跨域原理
个人摸索理解,如果需要改正,请指出。多谢。
为什么需要跨域
- 浏览器的同源策略来起到安全的作用。
- 需要同协议,同域名/IP,同端口才能直接请求。
- 这个协议的存在,我们无法正常跨域请求。
利用cors跨域会有以下过程。
- 跨域请求会先发送一个预请求OPTIONS
- 预请求成功后需要返回给前端一个成功的状态码
- 预请求通过,进行真正的请求,实现跨域
问题解决过程:
前端正常发送ajax/axios请求
import axios from "axios"
const webtest = 'http://localhost:80';
const axiosInstance = axios.create({
headers: {
'Content-Type': 'application/json;charset=utf-8'},// 设置传输内容的类型和编码
withCredentials: true // 指定某个请求应该发送凭据。允许客户端携带跨域cookie,也需要此配置
});
// 查询样例用户列表 用于测试
export const testUser = (params) => {
return axiosInstance({
url