http请求跨域问题
1. 跨域的产生
由于浏览器的http协议的安全机制同源策略,只要不符合同源策略,就会出现“跨域”
同源策略
- 同协议
- 同域名
- 同端口
- 只要不满足其中任意一个要求,就不符合同源策略,就会出现“跨域”
2. 解决跨域的方法
1. jsonp
jsonp能实现跨域是利用了img、script和link标签自身的跨域能力。
我们知道当img或者script中的src是一个链接的时候,浏览器会请求这个链接获取资源,那么这个 链接如果是跨域的,浏览器也会请求,从而达到了跨域请求的一个功能。
优点:简单粗暴
缺点:① 只支持get请求
② 需要后台配合,将返回结果包装成callback(res)的形式
2. CORS跨域 (前端不用动,后端设置Access-Control-Allow-Origin等)
- 服务端进行接口请求设置,前端直接调用
- 说明:后台设置前端某个站点进行访问
3. 代理 (proxy)前端开发常用
接口代理
- 通过修改nginx服务器配置实现代理转发
- 前端修改,后端不用
前端构建工具代理
webpack 配置代理
vite 配置代理