学而实习之 不亦乐乎

跨域请求及解决办法

2020-08-02 10:55:45

一、跨域请求

1.什么是跨域

跨越的情况:

(1)浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域
(2)只要协议、域名、端口有任何一个不同,都被当作是不同的域,之间的请求就是跨域操作。

协议http和https不同,端口80还是81,域名更好理解

2.为什么要有跨域限制

跨域限制主要是为了安全考虑

造成跨域的两种策略
浏览器的同源策略会导致跨域,这里同源策略又分为以下两种DOM同源策略:
1.禁止对不同源页面DOM进行操作。这里主要场景是iframe跨域的情况,不同域名的iframe是限制互相访问的。
2.XmlHttpRequest同源策略:禁止使用XHR对象向不同源的服务器地址发起HTTP请求。

二、跨域请求的解决办法

这里只介绍解决的方式

第一种:jsonp的方式
第二种:在后端添加允许跨域的请求头
第三种:代理请求,由后端去访问要跨域的请求的内容并返回,然后页面访问本地后端。感觉最好还是通过服务来解决最好,比如在nginx中进行配置。