- 什么是跨域?
跨域的全称是跨域资源共享
场景:当你请求的接口地址和现在前端文件服务所在的域(请求的协议,ip和端口)不同的时候,就会报错,如下图
- 为什么会出现跨域?
跨域问题的产生其实是浏览器的同源策略造成的,同源策略是浏览器的保护机制,只允许网页请求同一域名下的服务。
同源策略的要求是3同:协议,域名和端口都要保持一致
- 如何解决跨域问题?
- 【配置后端】CORS
浏览器是否启用跨域保护机制根据后端配置来响应的,所以服务器端需要做一个允许跨域的配置即可
如何配置:
修改接口的响应头:Access-Control-Allow-Origin,值为*,,浏览器判断通过就会允许跨域
- 【配置中间服务器】反向代理
意思是用一个代理服务器来代理真正的服务端发送请求
- 【配置中间服务器】正向代理
意思是用一个代理服务器来代理客户端发送请求,一般用浏览器做代理服务器,这个直接在webpack里面配置
- JSONP【不推荐】
其实是通过script标签的特性(无跨域限制)来实现跨域的,也需要服务器端配合,且只能用get方法, 有安全隐患,不推荐