关于跨域的一些解决方案
########跨域(非同源策略请求)
-同源策略请求 ajax/fetch
-跨域传输
2013年以前 前后端不分离
部署到同一个web服务器上:同源策略
-xampp 修改本地的host文件
服务器拆分
web服务器:静态资源 kbs.spotrs.qq.com
data服务器:业务逻辑和数据分析 api.sports.qq.com
图片服务器:
三者都一样就是同源,只要有一个不同就是跨域
-协议
-域名
-端口号
WEB服务器地址:https://127.0.0.1:3000/index.html
数据接口地址:https://127.0.0.1:4000/list
=============================
1.JSONP
-script
-img
-link
-iframe
-...
以上不存在跨域请求的限制
向服务器发送请求,同时把本地的一个函数传递给服务器
服务器接收客户端的请求,准备数据,给客户端返回数据
因此,JSONP需要服务器端的支持
问题:jsonp只能处理get请求
=============================================
2、CORS跨域资源共享
-客户端(发送ajax/fetch请求)
-服务器端设置相关的头信息(需要处理options试探性请求)
====================================================
3、http proxy代理 =>webpack webpack-dev-server
=================================================
4、ngix反向代理 ==>不需要前端干啥
proxy 相当于node给你模拟了一个ngix请求,服务器请求服务器不存在跨域。proxy请求来数据,解决跨域
5、postMessage
=========================
6、WebSocket协议跨域
其余方案:基于iframe的方案
7、document.domain + iframe
只能实现:同一个主域,不同子域之间的操作
8、window.name+iframe
9、location.hash+iframe
需要3个页面,A和C同源,A和B非同源
########跨域(非同源策略请求)
-同源策略请