什么是跨域?
浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域,只要协议、域名、端口有任何一个不同,都被当作是不同的域。
- jsonp跨域
动态创建<script>标签,然后利用<script>的src 不受同源策略约束来跨域获取数据。
JSONP(JSON with Padding:填充式JSON),应用JSON的一种新方法,
JSON、JSONP的区别:
1、JSON返回的是一串数据、JSONP返回的是脚本代码(包含一个函数调用)
2、JSONP 只支持get请求、不支持post请求
(类似往页面添加一个script标签,通过src属性去触发对指定地址的请求,故只能是Get请求)
Jsonp解决跨域相对简单,服务器无需任何配置。
2、CORS跨域 (前端不用动,后端设置Access-Control-Allow-Origin等)
服务端进行接口请求设置,前端直接调用
说明:后台设置前端某个站点进行访问
CORS解决方案需要服务端配置才能实现
3. 接口代理
通过修改nginx服务器配置实现代理转发
把跨域交给服务器来完成
前端修改,后端不用
前端请求 a 地址,设置nginx服务,将 a 地址代理到 b 地址。