什么是跨域?
跨域是指跨域名的访问,域名或端口不一致。如:域名不同、域名相同,端口不同,二级域名不同/子域名不同,协议不同,域名和ip地址
跨域引起的原因是什么?
浏览器的同源策略引起跨域问题,实质上跨域问题是针对ajax的一种限制。
跨域问题的解决方案
- Jsonp
最早的解决方案,利用script标签(不受限)可以跨域的原理实现。
限制:
- 需要服务的支持
- 只能发起GET请求
- nginx反向代理
思路是:利用nginx反向代理把跨域为不跨域,支持各种请求方式
- CORS
规范化的跨域请求解决方案,安全可靠。是w3c阻止的标准
优势:
- 在服务端进行控制是否允许跨域,可自定义规则
- 支持各种请求方式:get、post、put、delete
- 限制访问的电脑的IP地址
缺点:
- 会产生额外的请求(可能发一次/二次请求)