跨域资源请求
首先要明白,只有在浏览器的环境下会引发跨域,因为跨域是受到了浏览器的同源策略的影响。
比如a和b是两个不同的源,
a源通过xhr/fetch发起ajax请求b的资源,这就会触发浏览器的跨域资源请求。
可以看出浏览器的同源策略,并不会限制ajax发生请求,也不会影响服务器的响应,而是对服务器的响应结果进行校验,校验通过(响应报文包含了正确 CORS 响应头)则对响应放行,校验未通过则报错。
CORS(跨源资源共享(CORS)),就是浏览器对服务器响应的校验标准。
跨源资源共享(CORS,或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其他源(域、协议或端口),使得浏览器允许这些源访问加载自己的资源。
这也就是为什么CORS是解决跨域问题的一个方法的原因,同时也是为什么通过CORS解决跨域需要后端(服务器)配合的原因。