CORS 全称为(Cross-Origin Resource Sharing:跨站资源共享),CORS 的产生和浏览器的同源策略(Same Origin Policy
SOP)有关系,所以我们先了解什么是同源策略
SOP是所有的现代浏览器都具备的安全措施,它不允许从一个加载的js脚本和资源的Origin域与另一个Origin域进行交互。换句话说,如果您的网站是www.example.com
,则您无法向www.test.com
发出XHR请求。
如果说SOP是限制跨源访问的一种方式,那么CORS是一种绕过SOP限制并允许您的前端向服务器提出合法请求的方法。
源由三部分组成:协议,host ip(域)和端口
同源策略就是:不允许不同的ip、端口、协议的应用在浏览器内进行互相资源共享、请求调用。如下所示
CORS有两种类型的请求:“simple”简单请求和“preflight”预检请求,根据请求方法的不同由浏览器确定使用哪种请求。
如果符合以下所有条件,则API请求被视为简单请求:
如果您的API请求被视为simple简单请求,这个请求就可以直接被发送给服务器。
服务器使用 CORS HTTP Headers进行响应,浏览器将检查 Access-Control-Allow-Origin 后决定这个请求是否可以突破同源策略的限制,进行下一步的处理。
如果您的API请求不满足成为简单请求的标准(最常见不满足简单请求标准的Content-Type值为application/json),则浏览器将在发送实际请求之前发出预检请求。
举一个例子,我们尝试使用GET请求https://example.com/status,Content-Type是application/json,所以浏览器认为它不符合一个简单请求的标准,因此浏览器会在发出实际请求之前发出预检请求,这个预检请求是使用HTTP的 OPTIONS方法发出的:
版权声明:本文为CSDN博主「字母哥哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hanxiaotongtong/article/details/109282415
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。