HTTP | 跨域 - 知识点总结
跨域:浏览器的一种安全手段。
跨域的产生原因:在非同源的情况下,会产生跨域。
非同源:协议 protocol、主机 host、端口 port,有一个不同。
同源策略:
- 浏览器的一种安全手段;
- 指 在同一个域;
- 协议 protocol、主机 host、端口 port 都相同。
ps:跨域 是 浏览器的限制。抓包工具抓接口,接口已把数据返回,但你无法获取到数据,浏览器的限制,∵ 不同源)。
跨域的解决:1. jsonp 2. CORS 3. Proxy
vue中,常用 CORS 和 Proxy
CORS(Cross-Origin Resounce Sharing),跨域资源共享
指 添加一些 http 头,让服务器声明 允许访问来源。
比如 KOA框架中,添加中间件,在"Access-Control-Allow-Origin"响应头中 添加目标主机 host,使其 允许访问。
CORS 是 后端的做法?还是 前端的做法?前端吗?
Proxy,代理/网络代理
创建一个代理,去实现跨域问题。
方法有三:
① Webpack 起 本地服务器
(通过服务器转发到 目标服务器devServer中,本地在 devServer 中进行主机、端口、open是否打开浏览器、proxy 代理的设置:含 target 目标地址 changeOrigin是否跨域 pathRewrite 将实际Request URL中的内容a替换成内容b、);
② 浏览器代理请求转发;
③ 配置 Nginx 实现代理
相关的知识点:
ajax 原理
http客户端
封装 axios,轻量化的 http 客服端
实际问题解决的文章:前端 | CORS 跨域问题解决_if an opaque response serves your needs, set the r-CSDN博客
