跨域:页面的接口请求地址与页面地址中域名、端口、协议有一个不同时,即为跨域。
出现原因:因为浏览器发起接口请求必须符合同源协议,即域名,端口和协议必须都一样,否则跨域,无法请求数据,目的是保证网站安全。
跨域出现解决办法:
-
cors
后端设置即可
当访问这个后端接口时,后端返回请求头:Access-Control-Allow-Origin,假如为 *,则代表无论什么请求都可获取到资源
res.setHeader('Access-Control-Allow-Origin', '*');
-
jsonp
利用的原理: script 标签可以跨域请求资源。
我们平常写页面时, img 里的 src 属性可以访问跨域的路径,并返回图片,我们可以利用 src 这个属性,但是 img 拿到数据后,无法对数据进行操作。而 script 标签可以,所以我们使用 script 标签将回调函数作为参数拼接在 src 的 url 中,后端收到请求,调用该回调函数,并将数据作为参数返回,响应头返回文档类型:js。
-
代理
中间有一个服务器,服务器之间没有同源限制